URL:
  <http://savannah.gnu.org/bugs/?29338>

                 Summary: Crash using @synchronized on Windows
                 Project: GNUstep
            Submitted by: theeggcamefirst
            Submitted on: Thu 25 Mar 2010 11:29:28 PM GMT
                Category: Base/Foundation
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

This only occurs when creating a lock for the *second* instance of our class,
after the first instance has been deallocated.

Here's a backtrace that shows where it dies (stepping through code in
sync.m):

78        class_addMethod(lockClass, @selector(dealloc),
(IMP)deallocLockClass, types);
(gdb) n
80        if (!class_isMetaClass(obj->isa))
(gdb)
82            objc_registerClassPair(lockClass);
(gdb)

Program received signal SIGSEGV, Segmentation fault.
0x67844a2a in objc-1!__objc_resolve_class_links () from
c:\GNUstep\GNUstep\System\Tools\objc-1.dll
(gdb) bt
#0  0x67844a2a in objc-1!__objc_resolve_class_links ()
   from c:\GNUstep\GNUstep\System\Tools\objc-1.dll
#1  0x65ac71f5 in objc_registerClassPair (cls=0x9dad9b0) at runtime.c:1002
#2  0x65ac7c7c in initLockObject (obj=0x99cbad0) at sync.m:82
#3  0x65ac7d9e in objc_sync_enter (obj=0x99cbad0) at sync.m:124
#4  0x00476425 in -[VNCConnection setStatusString:] (self=0x99cbad0,
_cmd=0x54e6b0,
    aString=0x9b7e610) at VNCConnection.m:4449

I've committed a temporary fix for this, that simply removes the call to
objc_disposeClassPair() in the deallocLockClass() function. Apparently the
runtime can't handle disposing of a class and then creating a new class with
the same superclass as the one that went away. I don't know if this is a
Windows-specific problem or if it is an issue on Linux as well.

David, I understand from talking to Greg that you're the one who knows this
stuff. If you have any questions about what's going on, give Greg a call.





    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?29338>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/



_______________________________________________
Bug-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to