示例#1
0
def newCpbDel(self):
	if hasattr(self, "_deleted"):
		# Don't allow this to be called more than once.
		log.debugWarning("COM pointer %r already deleted" % self)
		return
	garbageHandler.notifyObjectDeletion(self)
	_cpbDel(self)
	self._deleted = True
示例#2
0
def newCpbDel(self):
    # __del__ may be called while Python is exiting.
    # In this state, global symbols may be set to None
    # Therefore avoid calling into garbageHandler or log,
    # unless isFinalizing is checked first to ensure they are still available
    # Using local variables or calling other methods on this class is still okay.
    isFinalizingFunc = getattr(sys, 'is_finalizing', lambda: True)
    isFinalizing = isFinalizingFunc()
    if hasattr(self, "_deleted"):
        # Don't allow this to be called more than once.
        if not isFinalizing:
            log.debugWarning("COM pointer %r already deleted" % self)
        return
    if not isFinalizing:
        garbageHandler.notifyObjectDeletion(self)
    self._oldCpbDel()
    self._deleted = True