Am 28.08.2010 10:12, schrieb Yavor Doganov: > Cenon 3.83 works correctly with GUI 0.16, but with 0.18 dies with > > Cenon: Uncaught exception NSInternalInconsistencyException, reason: > Abstract model loader. > > Breakpoint 1, -[NSException raise] (self=0x8594358, _cmd=0xb7b387c0) at > NSException.m:946 > 946 NSException.m: Няма такъв файл или директория. > in NSException.m > #0 -[NSException raise] (self=0x8594358, _cmd=0xb7b387c0) at > NSException.m:946 > No locals. > #1 0xb795eb86 in +[NSException raise:format:arguments:] (self=0xb7b385c0, > _cmd=0xb7b387a8, name=0xb7b388f8, format=0xb7fbe994, argList=0xbffff520 > "��W\b\220��\030CY\bd����\\\b���\210���6�ҷ��\\\b���(;x\b\020\234...@�") at > NSException.m:839 > except = 0x8594358 > #2 0xb795faa3 in +[NSException raise:format:] (self=0xb7b385c0, > _cmd=0xb7fbe880, name=0xb7b388f8, format=0xb7fbe994) at NSException.m:825 > No locals. > #3 0xb7e6701b in -[GSModelLoader loadModelData:externalNameTable:withZone:] > (self=0x85ce5c0, _cmd=0xb7f3c2b0, data=0x8583b28, context=0x8539c10, > zone=0xb7b7ed40) at GSModelLoaderFactory.m:55 > No locals. > #4 0xb7d2f936 in -[NSNib instantiateNibWithExternalNameTable:withZone:] > (self=0x857e1d8, _cmd=0xb7ef5fa0, externalNameTable=0x8539c10, > zone=0xb7b7ed40) at NSNib.m:153 > No locals. > #5 0xb7c90be8 in +[NSBundle(NSBundleAdditions) > loadNibFile:externalNameTable:withZone:] (self=0xb7b242a0, _cmd=0xb7ef6020, > fileName=0x858afd8, context=0x8539c10, zone=0xb7b7ed40) at > NSBundleAdditions.m:235 > loaded = 216 '�' > #6 0xb7c90af5 in -[NSBundle(NSBundleAdditions) > loadNibFile:externalNameTable:withZone:] (self=0x84a4040, _cmd=0xb7ef5fc8, > fileName=0x822d08c, context=0x8539c10, zone=0xb7b7ed40) at > NSBundleAdditions.m:339 > path = 0x858afd8 > #7 0xb7c90d2f in +[NSBundle(NSBundleAdditions) loadNibNamed:owner:] > (self=0xb7b242a0, _cmd=0x822d050, aNibName=0x822d08c, owner=0x84acc38) at > NSBundleAdditions.m:269 > table = 0x8539c10 > bundle = 0x8594370 > #8 0x0805082b in main (argc=1, argv=0xbffff784) at Cenon_main.m:63 > infoDict = <value optimized out> > appClass = <value optimized out> > > > Line 63 is simply > > if (![NSBundle loadNibNamed:@"Main" owner:app]) > NSLog(@"Cannot load Main interface file"); > > and Main is a .gmodel file. > > It looks like this is due to this change: > > 2010-03-22 Fred Kiefer <[email protected]> > > * Headers/Additions/GNUstepGUI/GSModelLoaderFactory.h, > * Source/GSModelLoaderFactory.m, > * Source/GSGormLoader.m, > * Source/GSXibLoader.m, > * Source/GSNibLoader.m: New method dataForFile: on GSModelLoader > and its subclasses. > * Source/NSNib.m: Use this new method to load NIB files. > * Source/NSBundleAdditions.m: Use NSNib for NIB loading. > * Source/GSNibLoading.m: Correctly handle top level objects and > clean up dealloc for most classes here. > > Is .gmodel file loading deprecated now, or that's simply a bug?
We are slowly phasing out GModel data, but this is still a bug. GNUstep code should be able to load GModel data. Looks like I did forget to adjust the GSGModelLoader code to the new structure of NIB loading. I will correct this, although it may take some time as this will require some changes to the external working of the libGModel. Great that you actually found this, looks like nobody else did load a GModel file in the last few months. Fred _______________________________________________ Gnustep-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnustep-dev
