interrogate: handle implicit destructors correctly

This commit is contained in:
rdb 2017-04-02 14:44:51 +02:00
parent ac0e6b5c5c
commit e1c916cdc3
4 changed files with 14 additions and 3 deletions

View File

@ -1133,7 +1133,8 @@ write_class_declarations(ostream &out, ostream *out_h, Object *obj) {
// to a macro function.
out << "typedef " << c_class_name << " " << class_name << "_localtype;\n";
if (obj->_itype.has_destructor() ||
obj->_itype.destructor_is_inherited()) {
obj->_itype.destructor_is_inherited() ||
obj->_itype.destructor_is_implicit()) {
if (TypeManager::is_reference_count(type)) {
out << "Define_Module_ClassRef";

View File

@ -343,6 +343,14 @@ destructor_is_inherited() const {
return (_flags & F_inherited_destructor) != 0;
}
/**
*
*/
INLINE bool InterrogateType::
destructor_is_implicit() const {
return (_flags & F_implicit_destructor) != 0;
}
/**
*
*/

View File

@ -82,6 +82,7 @@ public:
INLINE FunctionIndex get_constructor(int n) const;
INLINE bool has_destructor() const;
INLINE bool destructor_is_inherited() const;
INLINE bool destructor_is_implicit() const;
INLINE FunctionIndex get_destructor() const;
INLINE int number_of_elements() const;
INLINE ElementIndex get_element(int n) const;

View File

@ -65,7 +65,6 @@ class btPoint2PointConstraint;
class btPolyhedralConvexShape;
class btQuaternion;
class btSequentialImpulseConstraintSolver;
class btScalar;
class btSliderConstraint;
class btSoftBodyHelpers;
class btSoftBodyRigidBodyCollisionConfiguration;
@ -80,11 +79,13 @@ class btTranslationalLimitMotor;
class btTriangleMesh;
class btTypedConstraint;
class btTypedObject;
class btVector3;
class btVehicleRaycaster;
template <typename T> class btAlignedObjectArray;
struct btVector3 {};
typedef double btScalar;
class btWheelInfo {
public:
class RaycastInfo;