Invalid icon depth

VA Smalltalk is a "100% VisualAge compatible" IDE that includes the original VisualAge technology and the popular VA Assist and WidgetKit add-ons.

Moderators: Eric Clayberg, wembley, tc, Diane Engles, solveig

Invalid icon depth

Postby FredF » Tue Feb 05, 2008 7:26 am

Hi,
This is a problem we always had with vast (since 1997): right click in the composition editor and select 'View parts list' sometimes works and somtimes gives a debugger:
Debugger Stack Trace Report:
Error String: 'Invalid icon depth'
Executing in: CgIcon>>#initialize:height:depth:palette:shapePad:shapeData:maskPad:maskData:

It is enough to retry the same action 1 to 3 or 4 times to get the asked window instead of the debugger.
Anybody else has this problem? Any tip?
Thanks
Fred, Brussels,Belgium
(version 6.0.3, soon 7.5.2 (perhaps))
FredF
 
Posts: 18
Joined: Tue Feb 05, 2008 6:50 am

Re: Invalid icon depth

Postby wembley » Tue Feb 12, 2008 4:36 am

Fred -

The next time you get the walkback, please post it here (as an attachment).
John O'Keefe [|], Principal Smalltalk Architect, Instantiations Inc.
wembley
Moderator
 
Posts: 405
Joined: Mon Oct 16, 2006 3:01 am
Location: Durham, NC

Re: Invalid icon depth

Postby FredF » Wed Feb 13, 2008 5:21 am

Hi John,

I have saved the debugger stack from V7.5.2

but the forum refuses attachments without extension, or extension txt, st, I have tried jpg (just to see) but then it fails with It was not possible to determine the dimensions of the image (which is normal)

Finally, I have copy-pasted the stack here:
Fred

Debugger Stack Trace Report:
Error String: 'Invalid icon depth'
Resumable: false

UIProcess
Name: (13/02/2008 14:52:11)
Process State: suspended
Priority: 3

Executing in: CgIcon>>#initialize:height:depth:palette:shapePad:shapeData:maskPad:maskData:

System Configuration Dump


Copyright:

VA Smalltalk V7.5.2 ; Image: 7.5.2
VM Timestamp: 4.0,(NC) 6/12/2007 (74)
(C) Copyright Instantiations 1994, 2007. All rights reserved.
(C) Copyright International Business Machines Corp. 1994, 2006. All rights reserved.

Time: 14:52:52
Date: 13/02/2008

Platform:

Virtual machine: ES
Bytecode version: 4.0
Manager version: 4.00
'OS' subsystem: 'WIN32s'
'CLIM' subsystem: 'ES'
'CP' subsystem: 'WIN32s'
'CLDT' subsystem: 'ES'
'CFS' subsystem: 'WIN32s'
'SCI' subsystem: 'WIN'
'CW' subsystem: 'WIN32s'
'CPM' subsystem: 'ES'
'CG' subsystem: 'WIN32s'
'CPIC' subsystem: 'WIN32s'

Current user: Viviane

Connected Library:

Pathname: h:\vast7.5\mgr75.dat

INFO: Trapped error dumping system configuration.
=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
signal=Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
self=Signal on Exception: (ExError) An error has occurred.
aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
self=Exception: (ExError) An error has occurred.
aSignal=Signal on Exception: (ExError) An error has occurred.
exception=Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalWithArguments:
self=Exception: (ExError) An error has occurred.
arguments=('Invalid icon depth')
signal=Signal on Exception: (ExError) An error has occurred.
handler=nil
ExceptionalEvent>>#signalWith:
self=Exception: (ExError) An error has occurred.
arg1='Invalid icon depth'
CgIcon(Object)>>#error:
self=a CgIcon
aString='Invalid icon depth'


CgIcon>>#initialize:height:depth:palette:shapePad:shapeData:maskPad:maskData:
self=a CgIcon
w=40
h=40
d=24
p=a CgIndexedPalette
sp=4
sd=[0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 7 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 7 0 0 7 0 0 7 0 0 7 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 0 15 0 ...etc...]
mp=4
md=[255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 247 255 255 240 15 0 0 0 247 255 255 240 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 254 15 0 0 0 247 255 255 254 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 143 0 0 0 247 255 255 255 207 0 0 0 247 255 255 255 239 0 0 0 247 255 255 253 255 0 0 0 247 255 255 252 239 0 0 0 247 255 255 252 79 0 0 0 241 255 255 252 15 0 0 0 241 255 255 252 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0]
dataStride=nil
maskStride=nil


CgIcon class>>#fromImage:maskImage:
self=CgIcon
shapeImage=a CgDeviceIndependentImage
maskImage=a CgDeviceIndependentImage
maskPad=4
maskBpl=nil
maskData=[255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 247 255 255 240 15 0 0 0 247 255 255 240 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 252 15 0 0 0 247 255 255 254 15 0 0 0 247 255 255 254 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 15 0 0 0 247 255 255 255 143 0 0 0 247 255 255 255 207 0 0 0 247 255 255 255 239 0 0 0 247 255 255 253 255 0 0 0 247 255 255 252 239 0 0 0 247 255 255 252 79 0 0 0 241 255 255 252 15 0 0 0 241 255 255 252 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 240 0 0 0 15 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0]
icon=nil


AbtSuperimposedIconEditVisualPolicy>>#partsListIcon
self=an AbtSuperimposedIconEditVisualPolicy
finalSize=24 @ 24
inset=4 @ 4
backgroundPixmap=a CgPixmap
foregroundIcon=a CgIcon
foregroundShape=a CgDeviceIndependentImage
foregroundMask=a CgDeviceIndependentImage
shapePixels=(a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0) a CgRGBColor(16r0,16r0,16r0))
maskPixels=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
oldImage=a CgDeviceIndependentImage
shapeImage=a CgDeviceIndependentImage
maskImage=a CgDeviceIndependentImage


AbtMultiRowResultTableEditPart(AbtCwEditPart)>>#partsListIcon
self=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
[] in AbtEditPartsListView>>#visualInfoRequested:clientData:callData:
self=an AbtEditPartsListView
aWidget=an EwIconTree
clientData=nil
callData=EwIconTreeVisualInfoCallbackData(
reason -> 301
item -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
itemPosition -> 14
isInUse -> false
icon -> nil
label -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
hasChildren -> false
)
editPart=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
icon=nil


Dictionary>>#at:ifAbsent:
self=Dictionary(a CgIcon a CgIcon a CgIcon a CgIcon )
aKey=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
anExceptionBlock=[] in AbtEditPartsListView>>#visualInfoRequested:clientData:callData:
hashIndex=11
element=nil
elementsSize=11
index=2


AbtEditPartsListView>>#visualInfoRequested:clientData:callData:
self=an AbtEditPartsListView
aWidget=an EwIconTree
clientData=nil
callData=EwIconTreeVisualInfoCallbackData(
reason -> 301
item -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
itemPosition -> 14
isInUse -> false
icon -> nil
label -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
hasChildren -> false
)
editPart=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
icon=nil


CwCallbackRec>>#callWith:callData:
self=a CwCallbackRec
aWidget=an EwIconTree
callData=EwIconTreeVisualInfoCallbackData(
reason -> 301
item -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
itemPosition -> 14
isInUse -> false
icon -> nil
label -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
hasChildren -> false
)


EwIconTree(EwList)>>#callCallbackList:callData:
self=an EwIconTree
aCallbackList=OrderedCollection(a CwCallbackRec )
callData=EwIconTreeVisualInfoCallbackData(
reason -> 301
item -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
itemPosition -> 14
isInUse -> false
icon -> nil
label -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
hasChildren -> false
)
callbacks=nil
size=1
rec1=nil
rec2=nil
rec3=nil


EwIconTree(EwContainerList)>>#callVisualInfoCallbackFor:position:
self=an EwIconTree
anItem=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
anInteger=14
callData=EwIconTreeVisualInfoCallbackData(
reason -> 301
item -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
itemPosition -> 14
isInUse -> false
icon -> nil
label -> an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
hasChildren -> false
)


EwIconTree(EwIconList)>>#callVisualInfoCallbackFor:position:
self=an EwIconTree
anItem=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
anInteger=14


EwIconTree>>#callVisualInfoCallbackFor:position:
self=an EwIconTree
anItem=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
anInteger=14


EwIconTree>>#getHasChildrenFor:position:
self=an EwIconTree
anItem=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
anIndex=14


EwIconTree>>#expandPos:notify:
self=an EwIconTree
position=14
notify=true
anItem=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)
children=nil
subhierarchy=nil
node=nil
hasChildren=nil
fullRefresh=nil
[] in AbtEditPartsListView>>#rootEditPartChanged
self=an AbtEditPartsListView
child=an AbtMultiRowResultTableEditPart(resultTable of MRQ1)


OrderedCollection>>#do:
self=OrderedCollection(an AbtShellEditPart(Window) an AbtMultiRowQueryEditPart(MRQ1) an AbtMultiRowQueryEditPart(MRQ2) an AbtMultiRowResultTableEditPart(resultTable of MRQ1) an AbtMultiRowResultTableEditPart(resultTable of MRQ2) an AbtPrimitiveEditPart(A999 P Secura Error Block1) an AbtPrimitiveEditPart(del1Procedure) an AbtPrimitiveEditPart(del2Procedure) an AbtPrimitiveEditPart(Message) an AbtAppBldrViewWrapperEditPart(detail1Window) an AbtAppBldrViewWrapperEditPart(detail2Window) an AbtMultiRowQueryEditPart(MRQCTColumnTableV) an AbtMultiRowResultTableEditPart(resultTable of MRQCTColumnTableV) an AbtMultiRowQueryEditPart(MRQCTColumnTableToDoV) an AbtMultiRowResultTableEditPart(resultTable of MRQCTColumnTableToDoV) an AbtMenuEditPart(Popup Menu1) an AbtMenuEditPart(Popup Menu2) an AbtMultiRowQueryEditPart(MRQ1Count) )
aBlock=[] in AbtEditPartsListView>>#rootEditPartChanged


AbtOrderedDictionary(EsOrderedDictionary)>>#do:
self=AbtOrderedDictionary(an AbtShellEditPart(Window) an AbtMultiRowQueryEditPart(MRQ1) an AbtMultiRowQueryEditPart(MRQ2) an AbtMultiRowResultTableEditPart(resultTable of MRQ1) an AbtMultiRowResultTableEditPart(resultTable of MRQ2) an AbtPrimitiveEditPart(A999 P Secura Error Block1) an AbtPrimitiveEditPart(del1Procedure) an AbtPrimitiveEditPart(del2Procedure) an AbtPrimitiveEditPart(Message) an AbtAppBldrViewWrapperEditPart(detail1Window) an AbtAppBldrViewWrapperEditPart(detail2Window) an AbtMultiRowQueryEditPart(MRQCTColumnTableV) an AbtMultiRowResultTableEditPart(resultTable of MRQCTColumnTableV) an AbtMultiRowQueryEditPart(MRQCTColumnTableToDoV) an AbtMultiRowResultTableEditPart(resultTable of MRQCTColumnTableToDoV) an AbtMenuEditPart(Popup Menu1) an AbtMenuEditPart(Popup Menu2) an AbtMultiRowQueryEditPart(MRQ1Count) )
aBlock=[] in AbtEditPartsListView>>#rootEditPartChanged


AbtEditPartsListView>>#rootEditPartChanged
self=an AbtEditPartsListView
itemHeight=24
editParts=OrderedCollection(a VaaAbtFreeFormEditPart(A800VmCTColumn) )


AbtEditPartsListView>>#rootEditPart:
self=an AbtEditPartsListView
aRootEditPart=a VaaAbtFreeFormEditPart(A800VmCTColumn)
[] in VaaAbtFreeFormEditPart(AbtCompositeEditPart)>>#primOpenViewPartsList
self=a VaaAbtFreeFormEditPart(A800VmCTColumn)
key=##partsListView
partsListView=an AbtEditPartsListView


EmSystemConfiguration>>#showBusyCursorWhile:
self=an EmSystemConfiguration
aBlock=[] in AbtCompositeEditPart>>#primOpenViewPartsList
shell=CwTopLevelShell(primaryPart)
window=a CgWindow


VaaAbtFreeFormEditPart(AbtCompositeEditPart)>>#primOpenViewPartsList
self=a VaaAbtFreeFormEditPart(A800VmCTColumn)
key=##partsListView
partsListView=an AbtEditPartsListView


VaaAbtFreeFormEditPart(AbtCompositeEditPart)>>#viewPartsList:clientData:callData:
self=a VaaAbtFreeFormEditPart(A800VmCTColumn)
aWidget=CwPushButton(View Parts List...)
clientData=nil
callData=CwAnyCallbackData(
reason -> 10
)


CwCallbackRec>>#callWith:callData:
self=a CwCallbackRec
aWidget=CwPushButton(View Parts List...)
callData=CwAnyCallbackData(
reason -> 10
)


CwPushButton(CwBasicWidget)>>#callCallbackList:callData:
self=CwPushButton(View Parts List...)
aCallbackList=OrderedCollection(a CwCallbackRec )
callData=CwAnyCallbackData(
reason -> 10
)
callbacks=nil
size=1
rec1=nil
rec2=nil
rec3=nil


CwPushButton>>#callActivateCallback:
self=CwPushButton(View Parts List...)
anEvent=an OSEvent


OSMenuItem(OSWidget)>>#callHandlers:with:
self=OSMenuItem(&View Parts List...)
handlers=#callActivateCallback:
data=an OSEvent


DirectedMessage>>#send
self=DirectedMessage (OSMenuItem(&View Parts List...), #callHandlers:with:, (#callActivateCallback: an OSEvent))


OSEventManager class>>#runDeferredMessages
self=OSEventManager
state=true
message=DirectedMessage (OSMenuItem(&View Parts List...), #callHandlers:with:, (#callActivateCallback: an OSEvent))


OSWidget class>>#readAndDispatch
self=OSWidget
state=true
gotEvent=true


CwAppContext>>#readAndDispatch
self=a CwAppContext


AbtWindowSystemStartUp class(EsWindowSystemStartUp class)>>#messageLoop
self=AbtWindowSystemStartUp
lastEventTime=426927109
appContext=a CwAppContext
[] in <optimized block>(UIProcess class)>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
self=UIProcess:(13/02/2008 14:52:11){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
args=()


UIProcess(Process)>>#executeBlock:withArguments:
self=UIProcess:(13/02/2008 14:52:11){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
args=()


UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
self=UIProcess:(13/02/2008 14:52:11){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
stackSize=1024
args=()
procName='(13/02/2008 14:52:11)'
==============<STACK TRACE ENDS>=============
FredF
 
Posts: 18
Joined: Tue Feb 05, 2008 6:50 am

Re: Invalid icon depth

Postby FredF » Wed Feb 13, 2008 5:52 am

Some info from the debugger:
it fails here:
---------
(d = 1 or: [d = 4 or: [d = 8]])
ifFalse: [self error: (NlsCatCGa indexedMsg: 36)]. "$NLS$ Invalid icon depth"
--------
because d is 24.
d comes from:
--------
shapeImage depth
--------
which gives 24.
I do not know why, because shapeImage is build in method partsListIcon as:
-----------------
shapeImage := CgDeviceIndependentImage
width: backgroundPixmap width
height: backgroundPixmap height
depth: foregroundIcon depth
palette: foregroundIcon shapeImage palette.
---------------
and inspecting this code in the debugger gives a depth = 4



==> try something else, add a self halt in the partsListIcon method:
------------------------
shapeImage := CgDeviceIndependentImage
width: backgroundPixmap width
height: backgroundPixmap height
depth: foregroundIcon depth
palette: foregroundIcon shapeImage palette.
shapeImage depth = 4 ifFalse: [self halt].
------------------------
the self halt is triggered with foregroundIcon depth = 4 but shapeImage depth is 24.
I see nothing in the code of GgDeviceIndependentImage which transforms 4 into 24 ???

Ok, try this in partsListIcon method:
-------------------------------
saveDepth := foregroundIcon depth.
shapeImage := CgDeviceIndependentImage
width: backgroundPixmap width
height: backgroundPixmap height
depth: foregroundIcon depth
palette: foregroundIcon shapeImage palette.
shapeImage depth = 4 ifFalse: [self halt].
------------------------------
=> halt triggered, shapeImage depth is 24, foregroundIcon depth is 4, ... and saveDepth is 24 !
So, foregroundIcon depth WAS 24 but is "changed" (by what ?) in 4 when the debugger is opened.

Voilà, I hope that this info can help to find the solution.
Fred
FredF
 
Posts: 18
Joined: Tue Feb 05, 2008 6:50 am

Re: Invalid icon depth

Postby FredF » Wed Apr 02, 2008 2:21 am

A little up, any news on this?
FredF
 
Posts: 18
Joined: Tue Feb 05, 2008 6:50 am

Re: Invalid icon depth

Postby Eric Clayberg » Wed Apr 02, 2008 11:38 am

FredF wrote:A little up, any news on this?

Is the icon you are using a 1-bit, 4-bit or 8-bit icon (the only types supported by VAST) or is it, in fact, a 24-bit icon (not supproted by VAST)?
Eric Clayberg
Software Engineering Manager
Google
http://code.google.com/webtoolkit/download.html

Author: "Eclipse Plug-ins"
http://www.qualityeclipse.com
Eric Clayberg
Moderator
 
Posts: 4503
Joined: Tue Sep 30, 2003 6:39 am
Location: Boston, MA USA

Re: Invalid icon depth

Postby FredF » Thu Apr 03, 2008 6:06 am

Hi Eric,
Glad to hear you (even via the forum). I remember you from the "end of VAST support IBM seminar" in March 2005.
For this problem, I do not use (or select or whatever) myself an icon (at least not explicitely), I just right-click in the free space in the composition editor and select 'View parts list' in the menu. That's all.
Sometimes it gives this debugger, sometimes not.
If I get the debugger it is enough to retry exactly the same manipulation (=right-click in the free space in the composition editor and select 'View parts list' in the menu) 2 or 3 times to get the expected Parts list.
We have always had this problem, since VAST 3.0 in OS/2 up to now VAST 7.5.2 in Windows 2003.
Fred
FredF
 
Posts: 18
Joined: Tue Feb 05, 2008 6:50 am

Re: Invalid icon depth

Postby rpeirson » Thu Apr 03, 2008 7:41 am

We experience the exact same problem that Fred has described in our VAST 6.02 images as well.
rpeirson
 
Posts: 1
Joined: Thu Apr 03, 2008 7:37 am

Re: Invalid icon depth

Postby rjs » Thu Apr 03, 2008 8:10 am

Ditto. I work at the same company as "rpeirson", but on a different application. However, we both use VA 6.0.2.

It appears to always walkback on the first attempt and always succeed when repeated once.
rjs
 
Posts: 39
Joined: Thu Mar 27, 2008 11:07 am
Location: Port Perry, Ontario, Canada

Re: Invalid icon depth

Postby nmongeau » Fri Apr 04, 2008 5:57 am

Y'all,

took a good look, and here are my findings: the problem is within the image, some icons in AbtBmp##.dll are 32 bits (well at least one is, resource #606). This is not immediately apparent, but in the method AbtSuperimposedIconEditVisualPolicy>>#partsListIcon, that gets called when one tries to look at the "View Parts List" choice of a popup menu in the Composition Editor for a part that has a AbtMultiRowResultTableEditPart part (phew long sentence!), it triggers a walkback but the problem is already corrected, because of this code:

shapeImage := CgDeviceIndependentImage
width: backgroundPixmap width
height: backgroundPixmap height
depth: foregroundIcon depth
palette: foregroundIcon shapeImage palette.

the foregroundIcon is the one with a 32 bits depth, so the #width:height:depth:palette: method that eventually does this check:

(depth = 1 or: [depth = 4 or: [depth = 8]])
ifFalse: [self error: (NlsCatCGa indexedMsg: 36)]. "$NLS$ Invalid icon depth"

is already set with the 32 argument (foregroundIcon depth), BUT the following argument (foregroundIcon shapeImage palette) eventually leads to CgIcon>>#osGetData, which does a

self depth: 4

thus correcting the problem. This is also why the walkback only happens once, because the icon is already corrected when the walkback occurs.

Normand
nmongeau
[|]
 
Posts: 29
Joined: Fri Jan 12, 2007 9:37 am

Re: Invalid icon depth

Postby FredF » Fri Apr 04, 2008 9:53 am

Thanks for the help Normand! This is quite consistent as we use MultiRow queries.
Could Instantiations make a fix for that?
Fred
FredF
 
Posts: 18
Joined: Tue Feb 05, 2008 6:50 am

Re: Invalid icon depth

Postby mr_mike » Wed Feb 04, 2009 3:08 pm

Just came across these messages, as I am having the same issues.
For a quick fix, I set the depth to 4 if it wasn't 1, 4 or 8. Anyone have any thoughts on this. Below is the revised code in CgIcon in CgImageSupport:

Code: Select all
initialize: w
      height: h
      depth: d
      palette: p
      shapePad: sp
      shapeData: sd
      maskPad: mp
      maskData: md
   "Initialize the receiver."
   
   | dataStride maskStride newD|

   (sp = 1 or: [sp = 2 or: [sp = 4]])
      ifFalse: [self error: (NlsCatCGa  indexedMsg: 34)].  "$NLS$ Invalid icon shape padding"
   (mp = 1 or: [mp = 2 or: [mp = 4]])
      ifFalse: [self error: (NlsCatCGa  indexedMsg: 35)].  "$NLS$ Invalid icon mask padding"
   (d = 1 or: [d = 4 or: [d = 8]])
      ifTrue: [newD := d]
      ifFalse: [newD := 4"self error: (NlsCatCGa  indexedMsg: 36)"].  "$NLS$ Invalid icon depth"
   dataStride := ((w * d + 7) // 8 + (sp - 1)) // sp * sp.
   dataStride * h > sd size
      ifTrue: [self error: (NlsCatCGa  indexedMsg: 37)].  "$NLS$ Invalid icon shape data size"
   maskStride := ((w + 7) // 8 + (mp - 1)) // mp * mp.
   maskStride * h > md size
      ifTrue: [self error: (NlsCatCGa  indexedMsg: 38)].  "$NLS$ Invalid icon mask data size"
   self
      width: w;
      height: h;
      depth: newD;
      palette: p;
      shapePad: sp;
      shapeData: sd;
      maskPad: mp;
      maskData: md.
   self osInitialize


We've been getting this error with the parts browser as long as I can remember, and it would be nice to knock this one out once and for all.

Thanks,
Mike

nmongeau wrote:Y'all,

took a good look, and here are my findings: the problem is within the image, some icons in AbtBmp##.dll are 32 bits (well at least one is, resource #606). This is not immediately apparent, but in the method AbtSuperimposedIconEditVisualPolicy>>#partsListIcon, that gets called when one tries to look at the "View Parts List" choice of a popup menu in the Composition Editor for a part that has a AbtMultiRowResultTableEditPart part (phew long sentence!), it triggers a walkback but the problem is already corrected, because of this code:

shapeImage := CgDeviceIndependentImage
width: backgroundPixmap width
height: backgroundPixmap height
depth: foregroundIcon depth
palette: foregroundIcon shapeImage palette.

the foregroundIcon is the one with a 32 bits depth, so the #width:height:depth:palette: method that eventually does this check:

(depth = 1 or: [depth = 4 or: [depth = 8]])
ifFalse: [self error: (NlsCatCGa indexedMsg: 36)]. "$NLS$ Invalid icon depth"

is already set with the 32 argument (foregroundIcon depth), BUT the following argument (foregroundIcon shapeImage palette) eventually leads to CgIcon>>#osGetData, which does a

self depth: 4

thus correcting the problem. This is also why the walkback only happens once, because the icon is already corrected when the walkback occurs.

Normand
mr_mike
 
Posts: 2
Joined: Thu Jan 08, 2009 11:21 am

Re: Invalid icon depth

Postby FredF » Wed Nov 10, 2010 4:39 am

FredF wrote:Thanks for the help Normand! This is quite consistent as we use MultiRow queries.
Could Instantiations make a fix for that?
Fred


Same question: Could Instantiations make a fix for that?
FredF
 
Posts: 18
Joined: Tue Feb 05, 2008 6:50 am


Return to VA Smalltalk 7.0, 7.5 & 8.0

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest