diff --git a/direct/src/ffi/FFIEnvironment.py b/direct/src/ffi/FFIEnvironment.py index 5461291fea..3284696914 100644 --- a/direct/src/ffi/FFIEnvironment.py +++ b/direct/src/ffi/FFIEnvironment.py @@ -22,8 +22,8 @@ class FFIEnvironment: except KeyError: raise 'Type not found in FFIEnvironment' - def addGlobalFunction(self, typeDescriptor): - self.globalFunctions.append(typeDescriptor) + def addGlobalFunction(self, typeDescriptors): + self.globalFunctions.extend(typeDescriptors) def addDowncastFunction(self, typeDescriptor): self.downcastFunctions.append(typeDescriptor) def addGlobalValue(self, typeDescriptor): diff --git a/direct/src/ffi/FFIInterrogateDatabase.py b/direct/src/ffi/FFIInterrogateDatabase.py index 14bb422d42..0a2473b914 100644 --- a/direct/src/ffi/FFIInterrogateDatabase.py +++ b/direct/src/ffi/FFIInterrogateDatabase.py @@ -59,7 +59,8 @@ def outputGlobalFileImports(file, methodList, CModuleName): if (not (method.typeDescriptor.moduleName in CModuleList)): CModuleList.append(method.typeDescriptor.moduleName) for CModuleName in CModuleList: - file.write('import ' + CModuleName + '\n') + if CModuleName: + file.write('import ' + CModuleName + '\n') moduleList = [] for method in methodList: @@ -85,7 +86,8 @@ def outputGlobalFileImports(file, methodList, CModuleName): for moduleName in moduleList: - file.write('import ' + moduleName + '\n') + if moduleName: + file.write('import ' + moduleName + '\n') file.write('\n') @@ -130,7 +132,8 @@ def outputImportFileImports(file, typeList, CModuleName): file.write('# Import classes\n') for moduleName in moduleList: - file.write('import ' + moduleName + '\n') + if moduleName: + file.write('import ' + moduleName + '\n') file.write('\n') file.write('# Import the global module file into our name space\n') @@ -219,6 +222,7 @@ def getTypeName(typeIndex, scoped=0): if not name: FFIConstants.notify.warning('typeIndex: ' + `typeIndex` + ' typeName: ' + typeName + ' has no name') + name = "UnnamedType" return name @@ -625,13 +629,15 @@ class FFIInterrogateDatabase: descriptors = self.constructFunctionTypeDescriptors(globalIndex) if (len(descriptors) == 0): return None + funcSpecs = [] for descriptor in descriptors: funcSpec = FFISpecs.GlobalFunctionSpecification() funcSpec.typeDescriptor = descriptor funcSpec.name = FFIRename.methodNameFromCppName( funcSpec.typeDescriptor.foreignTypeName) funcSpec.index = globalIndex - return funcSpec + funcSpecs.append(funcSpec) + return funcSpecs def addGlobalFunctions(self, CModuleName): numGlobals = interrogate_number_of_global_functions() diff --git a/direct/src/ffi/FFITypes.py b/direct/src/ffi/FFITypes.py index a45a2f372b..1e8d1aae58 100644 --- a/direct/src/ffi/FFITypes.py +++ b/direct/src/ffi/FFITypes.py @@ -602,8 +602,9 @@ class ClassTypeDescriptor(BaseTypeDescriptor): indent(file, 0, '# Import all the C modules this class uses\n') for moduleName in self.getCModules(): - indent(file, 0, 'import ' + moduleName + '\n') - indent(file, 0, 'import ' + moduleName + 'Downcasts\n') + if moduleName: + indent(file, 0, 'import ' + moduleName + '\n') + indent(file, 0, 'import ' + moduleName + 'Downcasts\n') indent(file, 0, '\n') indent(file, 0, 'import FFIExternalObject\n')