[Openmcl-devel] lambda-gtk question on OpenMCL
taube at uiuc.edu
Wed Jan 26 14:16:39 UTC 2005
Its not a bug but its not pretty either. However it does work:
? (setq bm (plotter-bitmap w))
#<A Mac Pointer #x151FD0>
? (gdk:drawable-get-size bm 0 0)
lambda-gtk sources are portable between OpenMCL, SBCL and CMUCL so its
calling conventions have to be the same. both sbcl and cmucl return
pointer args as multiple values. so in the example above the NIL first
return value is the value returef by the function the second and third
values are the pointer arg values the function produces. so in the case
of a function that only produces values the external args you pass are
useless. If there is a better way to handle situations like this
please let me know, but only if it can determined from ffigen
expressions and only if it works in all three lisps.
Associate Professor, Composition/Theory
School of Music
University of Illinois
Urbana, IL 61821 USA
net: taube at uiuc.edu
fax: 217 244 8319
vox: 217 244 2684
> In the gtkffi-openmcl.lisp file, there is:
> (defun gdk::drawable-get-size (a b c)
> (rlet ((r1 :int b) (r2 :int c))
> (let ((z (#_gdk_drawable_get_size a r1 r2)))
> (values z (%get-signed-long r1) (%get-signed-long r2)))))
> Please forgive my ignorance, but, to my eye, this looks like an
> autogen gone wrong.
> b and c seem to not be used (as the _gdk_drawable_get_size call just
> over the initial values).
> In addition, why return the void from the _gdk_drawable_get_size call?
> Is this a bug in lambda-gtk that I should file a report on or am I
> missing something obvious?
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
More information about the Openmcl-devel