mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 09:23:03 -04:00
added detection of unrequested deletes
This commit is contained in:
parent
f5443ded3c
commit
e49e535067
@ -31,6 +31,8 @@ class DistributedObjectAI(DirectObject.DirectObject):
|
||||
# here.
|
||||
self.lastNonQuietZone = None
|
||||
|
||||
self._DOAI_requestedDelete = False
|
||||
|
||||
# These are used to implement beginBarrier().
|
||||
self.__nextBarrierContext = 0
|
||||
self.__barriers = {}
|
||||
@ -65,6 +67,12 @@ class DistributedObjectAI(DirectObject.DirectObject):
|
||||
# self.doId may not exist. The __dict__ syntax works around that.
|
||||
assert(self.notify.debug('delete(): %s' % (self.__dict__.get("doId"))))
|
||||
|
||||
if not self._DOAI_requestedDelete:
|
||||
self.notify.warning(
|
||||
'delete() called but requestDelete never called for %s: %s'
|
||||
% (self.__dict__.get('doId'), self.__class__.__name__))
|
||||
self._DOAI_requestedDelete = False
|
||||
|
||||
# Clean up all the pending barriers.
|
||||
for barrier in self.__barriers.values():
|
||||
barrier.cleanup()
|
||||
@ -237,7 +245,8 @@ class DistributedObjectAI(DirectObject.DirectObject):
|
||||
self.notify.warning("Tried to delete a %s (doId %s) that is already deleted" % (self.__class__, doId))
|
||||
return
|
||||
self.air.requestDelete(self)
|
||||
|
||||
self._DOAI_requestedDelete = True
|
||||
|
||||
def taskName(self, taskString):
|
||||
return (taskString + "-" + str(self.getDoId()))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user