Ver código fonte

*** empty log message ***

Joe Shochet 25 anos atrás
pai
commit
fab7e6fde3
2 arquivos alterados com 6 adições e 4 exclusões
  1. 3 0
      direct/src/ffi/FFIExternalObject.py
  2. 3 4
      direct/src/ffi/FFITypes.py

+ 3 - 0
direct/src/ffi/FFIExternalObject.py

@@ -26,6 +26,9 @@ class FFIExternalObject:
         # Start with a null this pointer
         self.this = 0
 
+    def destructor(self):
+        # Base destructor in case you do not define one
+        pass
 
     def getDowncastFunctions(self, thisClass, baseClass, chain):
         if (thisClass == baseClass):

+ 3 - 4
direct/src/ffi/FFITypes.py

@@ -510,9 +510,8 @@ class ClassTypeDescriptor(BaseTypeDescriptor):
         self.outputBaseDestructor(file, nesting)
         if self.destructor:
             self.destructor.generateDestructorCode(self, file, nesting)
-        else:
-            self.outputEmptyDestructor(file, nesting)
-
+        # If you have no destructor, inherit one
+            
         if len(self.staticMethods):
             indent(file, nesting+1, '\n')
             indent(file, nesting+1, '##################################################\n')
@@ -765,7 +764,7 @@ class ClassTypeDescriptor(BaseTypeDescriptor):
         empty one instead
         """
         indent(file, nesting+1, 'def destructor(self):\n')
-        indent(file, nesting+2, 'pass\n')
+        indent(file, nesting+2, "raise RuntimeError, 'No C++ destructor defined for class: ' + self.__class__.__name__\n")
 
 
     def generateReturnValueWrapper(self, file, userManagesMemory, needsDowncast, nesting):