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

                 Summary: Keyed archiving related exceptions with
NSScrollView
                 Project: GNUstep
            Submitted by: qmathe
            Submitted on: Mon 24 Aug 2009 04:32:42 PM GMT
                Category: Gui/AppKit
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

Base and Gui r28524 - Ubuntu 9.04 x86 - GCC 4.3.3

To serialize a scroll view with NSKeyedArchiver doesn't seem to work well
when this view was loaded from a gorm file. The crash doesn't happen
immediately but a bit later.

I attached a test app that shows the problem.

When you run the test app, no exception is logged. However when the same test
app is run inside GDB with a breakpoint on -[NSException raise], GDB stops on
an exception. 
NSArchiver appears to work fine as no exception can be detected with or
without GDB.

The code that leads to the crash is:
[NSKeyedArchiver archivedDataWithRootObject: scrollView]

If I create a simple scroll view with [[NSScrollView alloc] initWithFrame:]
and tries to serialize it, GDB breaks on -[NSKeyedUnarchiver
unarchiveObjectWithData:] rather than on the archiving phase as described
previously. So the issue doesn't seem to be only related to the nib/gorm
loading.

Here is the test app stack trace:

2009-08-24 15:50:56.439 Test[21969] Try unarchiving: <NSScrollView:
0x91ea3c8>
[Switching to Thread 0xb73b28d0 (LWP 21969)]

Breakpoint 1, -[NSException raise] (self=0x91e43c0, _cmd=0xb7afaa60)
    at NSException.m:835
835       if (_reserved == 0)
(gdb) bt
#0  -[NSException raise] (self=0x91e43c0, _cmd=0xb7afaa60) at
NSException.m:835
#1  0xb7964181 in +[NSException raise:format:arguments:] (self=0xb7afa840, 
    _cmd=0xb7afaa48, name=0xb7afa600, format=0xb7b1a6d8, argList=0xbff63c20
"")
    at NSException.m:785
#2  0xb79640be in +[NSException raise:format:] (self=0xb7afa840,
_cmd=0xb7b1b048, 
    name=0xb7afa600, format=0xb7b1a6d8) at NSException.m:771
#3  0xb79df3d0 in -[BinaryPLGenerator markOffset:for:] (self=0x91e0ff8, 
    _cmd=0xb7b1b2d0, offset=2157, object=0x918aba0) at NSPropertyList.m:3226
#4  0xb79e1154 in -[BinaryPLGenerator storeObject:] (self=0x91e0ff8,
_cmd=0xb7b1b250, 
    object=0x918aba0) at NSPropertyList.m:3741
#5  0xb79df265 in -[BinaryPLGenerator writeObjects] (self=0x91e0ff8,
_cmd=0xb7b1b310)
    at NSPropertyList.m:3209
#6  0xb79e1464 in -[BinaryPLGenerator generate] (self=0x91e0ff8,
_cmd=0xb7b1b240)
    at NSPropertyList.m:3784
#7  0xb79decdb in +[BinaryPLGenerator serializePropertyList:intoData:] (
    self=0xb7b1aa80, _cmd=0xb7b1b150, aPropertyList=0x91e0620,
destination=0x91e0730)
    at NSPropertyList.m:3132
#8  0xb79db110 in +[NSPropertyListSerialization
dataFromPropertyList:format:errorDescription:] (self=0xb7b1ace0,
_cmd=0xb7b04048, aPropertyList=0x91e0620, aFormat=200, 
    anErrorString=0xbff63e40) at NSPropertyList.m:2251
#9  0xb7981d62 in -[NSKeyedArchiver finishEncoding] (self=0x9136d58,
_cmd=0xb7b03f80)
    at NSKeyedArchiver.m:804
#10 0xb797ecd1 in +[NSKeyedArchiver archivedDataWithRootObject:]
(self=0xb7b03da0, 
    _cmd=0x804aba0, anObject=0x92620c8) at NSKeyedArchiver.m:450
#11 0x08048aeb in -[Controller applicationDidFinishLaunching:]
(self=0x90ee648, 
    _cmd=0xb7e6e018, notif=0x91ea300) at Controller.m:16
#12 0xb799cf49 in -[NSNotificationCenter _postAndRelease:] (self=0x8efafc8, 
    _cmd=0xb7b0afc8, notification=0x91ea300) at NSNotificationCenter.m:1161
#13 0xb799d86b in -[NSNotificationCenter
postNotificationName:object:userInfo:] (
    self=0x8efafc8, _cmd=0xb7b0afd0, name=0xb7f16a60, object=0x8ff6ab0,
info=0x0)
    at NSNotificationCenter.m:1220
#14 0xb799d722 in -[NSNotificationCenter postNotificationName:object:]
(self=0x8efafc8, 
    _cmd=0xb7e6db00, name=0xb7f16a60, object=0x8ff6ab0) at
NSNotificationCenter.m:1200
#15 0xb7c1b05c in -[NSApplication _didFinishLaunching] (self=0x8ff6ab0,
_cmd=0xb7e6dc88)
    at NSApplication.m:1139
#16 0xb7c1c3b7 in -[NSApplication run] (self=0x8ff6ab0, _cmd=0xb7e63040)
    at NSApplication.m:1456
#17 0xb7bfbbbd in NSApplicationMain (argc=1, argv=0xbff64564) at
Functions.m:74
#18 0x08048c2e in main (argc=Cannot access memory at address 0x1b0004
) at main.m:13

Quentin.



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Mon 24 Aug 2009 04:32:42 PM GMT  Name:
KeyedArchiverTableViewTest.tar.gz  Size: 40kB   By: qmathe

<http://savannah.gnu.org/bugs/download.php?file_id=18635>

    _______________________________________________________

Reply to this item at:

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

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



_______________________________________________
Bug-gnustep mailing list
Bug-gnustep@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to