Fixed accessing args** from _perl_cb_call
authorRyan Jendoubi <ryan.jendoubi@gmail.com>
Sat, 3 Jul 2010 11:04:16 +0000 (12:04 +0100)
committerRyan Jendoubi <ryan.jendoubi@gmail.com>
Sat, 3 Jul 2010 11:04:16 +0000 (12:04 +0100)
commit9b9c6e80b7e0463d10b0e3a69082f4aca92d6648
tree9334fe4c477dbd049fd09666cae99f05aadf4f57
parent53c1e1687c0f3fcb60fde4529ac6bcadc25ccf71
Fixed accessing args** from _perl_cb_call

See [0]; before the cif was Newx'd but its arg_types is a
/pointer/ to the values given locally in _make_callback,
not a copy. Newx'ing argtypes (Ctypes.xs:461) solves the
problem (with matching Safefree line 532).

To do now:
- Management of Perl stack in _perl_cb_call is wrong somehow,
  values not appearing in @_ in Perl space.
- _make_callback needs cleaned up.
- qsort's $cb currently defined in callbacks.t as taking 2 ints,
  but really requires 2 pointers. Will this become a problem?
  If changed to pointers values will need unpack'd in Perl cb

[0]:
http://old.nabble.com/shallow-copying-in-ffi_prep_cif-td28082268.html

modified:   Ctypes.xs
modified:   t/callbacks.t
Ctypes.xs
t/callbacks.t