Problems adding iVar to ListView Column class

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Problems adding iVar to ListView Column class

Ian Oldham-4
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


Reply | Threaded
Open this post in threaded view
|

Re: Problems adding iVar to ListView Column class

Blair McGlashan
"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