pgraph: add assertions to prevent invalid TransformState

If this commit is causing crashes in your code, it is probably exposing a bug in some other system that is assigning bad TransformState objects.
This commit is contained in:
rdb 2018-12-19 20:45:57 +01:00
parent 5cafe8552b
commit ebef9f3de8
1 changed files with 7 additions and 0 deletions

View File

@ -1084,6 +1084,8 @@ set_effects(const RenderEffects *effects, Thread *current_thread) {
*/
void PandaNode::
set_transform(const TransformState *transform, Thread *current_thread) {
nassertv(!transform->is_invalid());
// Need to have this held before we grab any other locks.
LightMutexHolder holder(_dirty_prev_transforms._lock);
@ -1120,6 +1122,8 @@ set_transform(const TransformState *transform, Thread *current_thread) {
*/
void PandaNode::
set_prev_transform(const TransformState *transform, Thread *current_thread) {
nassertv(!transform->is_invalid());
// Need to have this held before we grab any other locks.
LightMutexHolder holder(_dirty_prev_transforms._lock);
@ -3849,6 +3853,9 @@ complete_pointers(TypedWritable **p_list, BamReader *manager) {
// Mark the bounds stale.
++_next_update;
nassertr(!_transform->is_invalid(), pi);
nassertr(!_prev_transform->is_invalid(), pi);
return pi;
}