mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -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.
|
# here.
|
||||||
self.lastNonQuietZone = None
|
self.lastNonQuietZone = None
|
||||||
|
|
||||||
|
self._DOAI_requestedDelete = False
|
||||||
|
|
||||||
# These are used to implement beginBarrier().
|
# These are used to implement beginBarrier().
|
||||||
self.__nextBarrierContext = 0
|
self.__nextBarrierContext = 0
|
||||||
self.__barriers = {}
|
self.__barriers = {}
|
||||||
@ -65,6 +67,12 @@ class DistributedObjectAI(DirectObject.DirectObject):
|
|||||||
# self.doId may not exist. The __dict__ syntax works around that.
|
# self.doId may not exist. The __dict__ syntax works around that.
|
||||||
assert(self.notify.debug('delete(): %s' % (self.__dict__.get("doId"))))
|
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.
|
# Clean up all the pending barriers.
|
||||||
for barrier in self.__barriers.values():
|
for barrier in self.__barriers.values():
|
||||||
barrier.cleanup()
|
barrier.cleanup()
|
||||||
@ -237,6 +245,7 @@ class DistributedObjectAI(DirectObject.DirectObject):
|
|||||||
self.notify.warning("Tried to delete a %s (doId %s) that is already deleted" % (self.__class__, doId))
|
self.notify.warning("Tried to delete a %s (doId %s) that is already deleted" % (self.__class__, doId))
|
||||||
return
|
return
|
||||||
self.air.requestDelete(self)
|
self.air.requestDelete(self)
|
||||||
|
self._DOAI_requestedDelete = True
|
||||||
|
|
||||||
def taskName(self, taskString):
|
def taskName(self, taskString):
|
||||||
return (taskString + "-" + str(self.getDoId()))
|
return (taskString + "-" + str(self.getDoId()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user