[gambit-list] References between 'foreign' objects.

Estevo euccastro at yahoo.com
Tue Mar 27 00:03:05 EDT 2012



Correction:


Then I write an accessor:
>
>
>(define (parent-c p)
>  (let ((ret ((c-lambda (parent) child
>                 "___result_voidstar = &(((parent*)___arg1_voidstar)->c);"))))
>    ((c-lambda (child scheme-object) void
>       "___EXT(___set_data_rc)(___arg1_voidstar, ___arg2);")  ; [2]
>
>     ret parent)
>
>    ret)
>


In this example I forgot to pass `p` to the first c-lambda and I passed `parent` to the second one instead.  The corrected version would be:


(define (parent-c p)
  (let ((ret ((c-lambda (parent) child
                 "___result_voidstar = &(((parent*)___arg1_voidstar)->c);")
                p)))
    ((c-lambda (child scheme-object) void
       "___EXT(___set_data_rc)(___arg1_voidstar, ___arg2);")  ; [2]
     ret p)
    ret)



More information about the Gambit-list mailing list