Przeglądaj źródła

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.
rdb 7 lat temu
rodzic
commit
ebef9f3de8
1 zmienionych plików z 7 dodań i 0 usunięć
  1. 7 0
      panda/src/pgraph/pandaNode.cxx

+ 7 - 0
panda/src/pgraph/pandaNode.cxx

@@ -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;
 }