瀏覽代碼

more verbose error when out of range

David Rose 21 年之前
父節點
當前提交
66c6df9d92
共有 1 個文件被更改,包括 17 次插入3 次删除
  1. 17 3
      direct/src/distributed/cDistributedSmoothNodeBase.cxx

+ 17 - 3
direct/src/distributed/cDistributedSmoothNodeBase.cxx

@@ -276,9 +276,23 @@ finish_send_update(DCPacker &packer) {
 
   packer.pop();
   bool pack_ok = packer.end_pack();
-  nassertv(pack_ok);
+  if (pack_ok) {
+    Datagram dg(packer.get_data(), packer.get_length());
+    _repository->send_datagram(dg);
 
-  Datagram dg(packer.get_data(), packer.get_length());
-  _repository->send_datagram(dg);
+  } else {
+#ifndef NDEBUG
+    if (packer.had_range_error()) {
+      ostringstream error;
+      error << "Node position out of range for DC file: "
+            << _node_path << " pos = " << _node_path.get_pos()
+            << " hpr = " << _node_path.get_hpr();
+      nassert_raise(error.str());
+
+    } else {
+      nassert_raise("Unexpected pack error in DC file.");
+    }
+#endif
+  }
 }