AcademySoftwareFoundation / AcademySoftwareFoundation/openvdb

[BUG] SOP_OpenVDB_Activate.cc doesn't compile successfully with Houdini 21

Open
#2,080 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C++
Stars
3.4k
Forks
777
Avg merge
3d 9h
Merged PRs (30d)
34

Description

Environment

Operating System: Linux Rocky 9.5
Commit SHA: 584b2b5a1b43641d54f942d981d7b50887b27d92

Describe the bug

When SOP_OpenVDB_Activate.cc was updated for Houdini 21.0's API changes, the function prototypes for inputLabel() and isRefInput() were updated to take an OP_InputIdx instead of an unsigned int, but the implementations at the bottom of the file still take unsigned int, giving a compiler error.

To Reproduce

Steps to reproduce the behavior:
Build the Houdini plugin SOP_OpenVDB_Activate.cc with Houdini 21.0.440
See the compiler error:

openvdb/openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc:1297:1: error: no declaration matches ‘const char* SOP_VDBActivate::inputLabel(unsigned int) const’
 1297 | SOP_VDBActivate::inputLabel(unsigned index) const
      | ^~~~~~~~~~~~~~~
openvdb/openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc:63:18: note: candidate is: ‘virtual const char* SOP_VDBActivate::inputLabel(OP_InputIdx) const’
   63 |     const char  *inputLabel(OP_InputIdx idx) const override;
      |                  ^~~~~~~~~~
openvdb/openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc:60:7: note: ‘class SOP_VDBActivate’ defined here
   60 | class SOP_VDBActivate : public hvdb::SOP_NodeVDB
      |       ^~~~~~~~~~~~~~~
openvdb/openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc:1310:1: error: no declaration matches ‘int SOP_VDBActivate::isRefInput(unsigned int) const’
 1310 | SOP_VDBActivate::isRefInput(unsigned i) const
      | ^~~~~~~~~~~~~~~
openvdb/openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc:64:18: note: candidate is: ‘virtual int SOP_VDBActivate::isRefInput(OP_InputIdx) const’
   64 |     int          isRefInput(OP_InputIdx i) const override;
      |                  ^~~~~~~~~~
openvdb/openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc:60:7: note: ‘class SOP_VDBActivate’ defined here
   60 | class SOP_VDBActivate : public hvdb::SOP_NodeVDB
      |       ^~~~~~~~~~~~~~~
gmake[2]: *** [openvdb_houdini/openvdb_houdini/CMakeFiles/SOP_OpenVDB_Activate.dir/build.make:79: openvdb_houdini/openvdb_houdini/CMakeFiles/SOP_OpenVDB_Activate.dir/SOP_OpenVDB_Activate.cc.o] Error 1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in openvdb/openvdb_houdini/openvdb_houdini/SOP_OpenVDB_Activate.cc, comparing the inputLabel() and isRefInput() declarations near lines 63–64 with their implementations near lines 1297 and 1310. Build the Houdini plugin with Houdini 21.0.440 and confirm that the compiler errors are gone.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system
Issue type
Bug
Difficulty
1/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.