In some cases, when an event is scheduled against a subclass of Object, and if no one owns a reference directly to this object, the object is alive, has a refcount of zero and the method ran when the event expires runs against the raw pointer which means that we are manipulating an object with a refcount of zero. So, we must disable this check. This is really evil but I see no way to work around this.
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Tue, 03 Jul 2007 17:05:23 +0200
changeset 1572 edb79cb0579b
parent 1571 c8c049020a29
child 1573 23f53613f22d
In some cases, when an event is scheduled against a subclass of Object, and if no one owns a reference directly to this object, the object is alive, has a refcount of zero and the method ran when the event expires runs against the raw pointer which means that we are manipulating an object with a refcount of zero. So, we must disable this check. This is really evil but I see no way to work around this.
src/core/object.cc
--- a/src/core/object.cc	Tue Jul 03 16:11:40 2007 +0200
+++ b/src/core/object.cc	Tue Jul 03 17:05:23 2007 +0200
@@ -118,7 +118,6 @@
 Ptr<Object>
 Object::DoQueryInterface (InterfaceId iid) const
 {
-  NS_ASSERT (Check ());
   const Object *currentObject = this;
   do {
     NS_ASSERT (currentObject != 0);