From fab7e6fde3403e22f20373a2d7f1e15bc34adc66 Mon Sep 17 00:00:00 2001 From: Joe Shochet Date: Thu, 30 Nov 2000 22:38:35 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/ffi/FFIExternalObject.py | 3 +++ direct/src/ffi/FFITypes.py | 7 +++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/direct/src/ffi/FFIExternalObject.py b/direct/src/ffi/FFIExternalObject.py index 9208fe4ae9..8a218d274f 100644 --- a/direct/src/ffi/FFIExternalObject.py +++ b/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): diff --git a/direct/src/ffi/FFITypes.py b/direct/src/ffi/FFITypes.py index 85c4b7aead..2009fd8e33 100644 --- a/direct/src/ffi/FFITypes.py +++ b/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):