diff --git a/wrap/Module.cpp b/wrap/Module.cpp index 192992dbc..960935649 100644 --- a/wrap/Module.cpp +++ b/wrap/Module.cpp @@ -228,7 +228,7 @@ void Module::parseMarkup(const std::string& data) { // Dependency check list vector validTypes = GenerateValidTypes(expandedClasses, - forward_declarations); + forward_declarations, typedefs); // Check that all classes have been defined somewhere verifyArguments(validTypes, global_functions); @@ -446,7 +446,7 @@ vector Module::ExpandTypedefInstantiations(const vector& classes, } /* ************************************************************************* */ -vector Module::GenerateValidTypes(const vector& classes, const vector forwardDeclarations) { +vector Module::GenerateValidTypes(const vector& classes, const vector& forwardDeclarations, const vector& typedefs) { vector validTypes; for(const ForwardDeclaration& fwDec: forwardDeclarations) { validTypes.push_back(fwDec.name); @@ -465,6 +465,9 @@ vector Module::GenerateValidTypes(const vector& classes, const ve for(const Class& cls: classes) { validTypes.push_back(cls.qualifiedName("::")); } + for(const TypedefPair& p: typedefs) { + validTypes.push_back(p.newType.qualifiedName("::")); + } return validTypes; } diff --git a/wrap/Module.h b/wrap/Module.h index 986340946..2fe5d2af8 100644 --- a/wrap/Module.h +++ b/wrap/Module.h @@ -84,7 +84,8 @@ private: const std::vector instantiations); static std::vector GenerateValidTypes( const std::vector& classes, - const std::vector forwardDeclarations); + const std::vector& forwardDeclarations, + const std::vector& typedefs); static void WriteCollectorsAndCleanupFcn(FileWriter& wrapperFile, const std::string& moduleName, const std::vector& classes); static void WriteRTTIRegistry(FileWriter& wrapperFile,