Lagoon Deployment loses Object>>#isSymbol

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

Lagoon Deployment loses Object>>#isSymbol

Peter Goodall-4
Hi,

I'm trying to deploy an application that dynamically generates some buttons
whose commands are instances of MessageSend.
The deployed executable fails when #isSymbol is sent to  an instance of
MessageSend.

The code where I believe this is happening looks like:

[:genre |
| aButton mSend |
mSend := MessageSend
 receiver: self
 selector: #selectedImageAttributeChanged:
 argument: genre.
(aButton := PushButton new)
 command: mSend;
 text: genre.
buttons add: aButton.
buttonsContainer addSubView: aButton].

The run-time diagnostic is:

{07110258: cf 07110239, sp 07110268, bp 07110254, ip 5,
MessageSend(Object)>>doesNotUnderstand:}
 receiver: a MessageSend
 arg[0]: Message selector: #isSymbol arguments: a Array

{07110238: cf 0711021D, sp 0711024C, bp 070A03C8, ip 62, [] in
GenreTool>>createAttributeButtonsIn:}
 receiver: a GenreTool
 arg[0]: a ContainerView
 temp[0]: 'ocean'
 temp[1]: a PushButton
 temp[2]: a PushButton
 temp[3]: a MessageSend


#isSymbol is implemented on Object and UndefinedObject - you'd reckon it'd
always be there.

I've tried putting a dummy send in the block above to let the ImageStripper
know its going to be used somewhere on the MessageSend - same result though.

As an alternative, is there some way that a button push can send the button
label,  or other id, as an argument to its command?

(help)


Reply | Threaded
Open this post in threaded view
|

Re: Lagoon Deployment loses Object>>#isSymbol

Bill Schwab-2
> #isSymbol is implemented on Object and UndefinedObject - you'd reckon it'd
> always be there.

I suspect your problem is that they are being stripped when the RB packages
are removed.  Referenced or not, a method will go away when it's class goes
away when it's package goes away because it's not in the prerequisites list
=:0

Take a look at #asSymbol; it might be a more direct way to solve your
problem.  Also, you might try Message instead of MessageSend.

Have a good one,

Bill

--
Wilhelm K. Schwab, Ph.D.
[hidden email]