mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
Show error instead of crash when using method or property before C++ object is constructed
This commit is contained in:
parent
7eb7ffbb02
commit
99f7fb6fcd
@ -10,6 +10,7 @@ This issue fixes several bugs that were still found in 1.9.2.
|
|||||||
* Fix loading old models with MovingPart<LMatrix4f>
|
* Fix loading old models with MovingPart<LMatrix4f>
|
||||||
* Improve performance of CPU vertex animation somewhat
|
* Improve performance of CPU vertex animation somewhat
|
||||||
* Show framebuffer properties when fbprop request fails
|
* Show framebuffer properties when fbprop request fails
|
||||||
|
* Show error instead of crash on use of object before __init__
|
||||||
* Fix hang on exit when using Python task on threaded task chain
|
* Fix hang on exit when using Python task on threaded task chain
|
||||||
* Fix inability to get RGBA renderbuffer in certain cases
|
* Fix inability to get RGBA renderbuffer in certain cases
|
||||||
* Work around GLSL issue with #pragma and certain Intel drivers
|
* Work around GLSL issue with #pragma and certain Intel drivers
|
||||||
|
@ -70,7 +70,7 @@ void DTOOL_Call_ExtractThisPointerForType(PyObject *self, Dtool_PyTypedObject *c
|
|||||||
// wrong type, raises an AttributeError.
|
// wrong type, raises an AttributeError.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
bool Dtool_Call_ExtractThisPointer(PyObject *self, Dtool_PyTypedObject &classdef, void **answer) {
|
bool Dtool_Call_ExtractThisPointer(PyObject *self, Dtool_PyTypedObject &classdef, void **answer) {
|
||||||
if (self == NULL || !DtoolCanThisBeAPandaInstance(self)) {
|
if (self == NULL || !DtoolCanThisBeAPandaInstance(self) || ((Dtool_PyInstDef *)self)->_ptr_to_object == NULL) {
|
||||||
Dtool_Raise_TypeError("C++ object is not yet constructed, or already destructed.");
|
Dtool_Raise_TypeError("C++ object is not yet constructed, or already destructed.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ bool Dtool_Call_ExtractThisPointer(PyObject *self, Dtool_PyTypedObject &classdef
|
|||||||
bool Dtool_Call_ExtractThisPointer_NonConst(PyObject *self, Dtool_PyTypedObject &classdef,
|
bool Dtool_Call_ExtractThisPointer_NonConst(PyObject *self, Dtool_PyTypedObject &classdef,
|
||||||
void **answer, const char *method_name) {
|
void **answer, const char *method_name) {
|
||||||
|
|
||||||
if (self == NULL || !DtoolCanThisBeAPandaInstance(self)) {
|
if (self == NULL || !DtoolCanThisBeAPandaInstance(self) || ((Dtool_PyInstDef *)self)->_ptr_to_object == NULL) {
|
||||||
Dtool_Raise_TypeError("C++ object is not yet constructed, or already destructed.");
|
Dtool_Raise_TypeError("C++ object is not yet constructed, or already destructed.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user