I implemented Louis Sumberg's reverse sorting on list view columns in
my D4 apps using an extra iVar in class ListViewColumn. Now I'm trying out D5 Pro trial edition (5.0.1) and struggling/failing to import my D4 apps into D5. I can't do a straight file in because D5's LVC has 12 iVars and my D4 LVC has 13 iVars so I wanted to add a 13th iVar to D5's LVC but when I try and do it from the CHB I get a popup about class shapes mismatch and an entry on the system transcript about an error in line 2. If I try and execute the following in a workspace I get the walkback below. Is this a bug if not how can I import my D4 apps into D5 without having to manually recreate my view resources? TIA, Ian workspace code: Object subclass: #ListViewColumn instanceVariableNames: 'text width alignment getTextBlock getSortValueBlock getContentsBlock name parent getImageBlock flags getInfoTipBlock customDrawBlock unused1' classVariableNames: 'AutoResizeMask SortInvertedMask' poolDictionaries: '' classInstanceVariableNames: '' resultant walkback: 20:17:53, 25 June 2002: 'Incompatible class instance shapes' UndefinedObject(Object)>>error: UndefinedObject(Object)>>becomeA: MethodCompileFailed>>resumeWithStubMethod [] in Metaclass(Behavior)>>compileAll [] in MethodCompileFailed(Exception)>>_evaluateHandler:in: BlockClosure>>ifCurtailed: BlockClosure>>ensure: MethodCompileFailed(Exception)>>_evaluateHandler:in: MethodCompileFailed(Exception)>>_propagateFrom: MethodCompileFailed(Exception)>>_propagate MethodCompileFailed(Exception)>>signal MethodCompileFailed(Exception)>>signal: [] in Metaclass(Behavior)>>recompile: [] in CompilerErrorNotification(Exception)>>_evaluateHandler:in: BlockClosure>>ifCurtailed: BlockClosure>>ensure: CompilerErrorNotification(Exception)>>_evaluateHandler:in: CompilerErrorNotification(Exception)>>_propagateFrom: CompilerErrorNotification(Exception)>>_propagate CompilerErrorNotification(Exception)>>signal Compiler class>>compilerNotification: Compiler class>>compilerError:line:start:stop:selector:in:for:to: [] in ProcessorScheduler>>callback:perform:withArguments:cookie: BlockClosure>>ifCurtailed: ProcessorScheduler>>callback:perform:withArguments:cookie: Compiler class>>compile:in:flags: [] in Metaclass(Behavior)>>recompile: ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry [] in ExceptionHandler(ExceptionHandlerAbstract)>>try: BlockClosure>>ifCurtailed: BlockClosure>>ensure: ExceptionHandler(ExceptionHandlerAbstract)>>try: BlockClosure>>on:do: Metaclass(Behavior)>>recompile: [] in Metaclass(Behavior)>>compileAll IdentitySet(Set)>>do: [] in Metaclass(Behavior)>>compileAll ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry [] in ExceptionHandler(ExceptionHandlerAbstract)>>try: BlockClosure>>ifCurtailed: BlockClosure>>ensure: ExceptionHandler(ExceptionHandlerAbstract)>>try: BlockClosure>>on:do: Metaclass(Behavior)>>compileAll ClassBuilder>>initializeCopy:fromClass:superclass: ClassBuilder>>newMetaclassLike:superclass: ClassBuilder>>newClassLike:superclass: ClassBuilder>>mutateClass:toBeASubclassOf: ClassBuilder>>mutateToNewClass ClassBuilder>>modifyProper |
"Ian Oldham" <[hidden email]> wrote in message
news:[hidden email]... > I implemented Louis Sumberg's reverse sorting on list view columns in > my D4 apps using an extra iVar in class ListViewColumn. Now I'm trying > out D5 Pro trial edition (5.0.1) and struggling/failing to import my > D4 apps into D5. > > I can't do a straight file in because D5's LVC has 12 iVars and my D4 > LVC has 13 iVars so I wanted to add a 13th iVar to D5's LVC but when I > try and do it from the CHB I get a popup about class shapes mismatch > and an entry on the system transcript about an error in line 2. .... I suspect you are using a trial/evaluation copy of D5 to do this, right? If so then attempting to extend ListViewColumn will fail because one of the methods on the class side (and perhaps others) is in the "MVP deprecated" package, and (for no particular reason) the source of this is hidden, and so the method cannot be recompiled. I think it is a bug that the recompilation attempt fails in this way when there is no source (a warning would be more appropriate), but you will find that it works fine on a licensed copy of D5 with full source. You'll still need to deal with STB conversion issues though (generally when an instance variable is added you can just increment the stbVersion number as a start point). Regards Blair |
Free forum by Nabble | Edit this page |