Initial checkin
[clg] / gffi / proxy.lisp
index 6586891..7ce9f05 100644 (file)
@@ -20,7 +20,7 @@
 ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-;; $Id: proxy.lisp,v 1.8 2007-05-10 20:23:28 espen Exp $
+;; $Id: proxy.lisp,v 1.10 2007-12-11 14:26:11 espen Exp $
 
 (in-package "GFFI")
 
          #'(lambda (value object)
              (unless writer
                (setq writer (mkbinding setter nil 'pointer type)))
+             ;; First argument in foreign setters is the object and second
+             ;; is value
              (funcall writer (foreign-location object) value)))
       (call-next-method)))
   
@@ -597,7 +599,7 @@ object at the give location."))
 
 (define-type-method callback-wrapper ((type struct) var arg form)
   (let ((class (type-expand type)))
-    `(let ((,var (ensure-proxy-instance ',class ,arg :finalize nil)))
+    `(let ((,var (ensure-proxy-instance ',class ,arg :reference nil :finalize nil)))
        (unwind-protect
           ,form
         (invalidate-instance ,var)))))