[Bese-devel] I'm in trouble again

Marco Baringer mb at bese.it
Wed Sep 14 16:58:39 UTC 2005


Friedrich Dominicus <frido at q-software-solutions.de> writes:

> giving do-it-2 as action works (although view is not used)
> giving do-it-3 as action breaks. 
>
> Could someone please explain that to me?

actions always assume the first argument is the 'target' component for
CALL forms.

so when you do this:

(defaction foo ((c component))
  (call 'some-other-component))

we transfer control from C to an instance of SOME-OTHER-COMPONENT. so
if you change things in such a way that the first parameter to an
action is not a component the CALL macro breaks. If you really want to
set things up this way (call an action which doesn't work off a
component) you must use call-component (which is the function the CALL
macro wraps):

(defaction foo ((obj something-which-is-not-a-component))
  (call-component (find-the-component)
                  (make-instance 'some-other-component)))

hth.

-- 
-Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
	-Leonard Cohen



More information about the bese-devel mailing list