closure: Fix unaligned and out-of-bounds access
closure: Fix unaligned and out-of-bounds access

When the direction is FROM_PYTHON, a whole GIArgument was being loaded
from the address given by the argument, but like any other case, this
could point to different types, and so could run off the end of the
pointed-to value, and, more importantly, be performing an unaligned
access, causing it to crash with SIGBUS on sparc64 when running
test_callback_scope_call_array_inout. Instead, reuse the existing code
for the TO_PYTHON case to do the copying into arg_value based on the
type.

https://bugzilla.gnome.org/show_bug.cgi?id=788894

pexip/pygobject,pexip/pygobject,GNOME/pygobject,GNOME/pygobject,GNOME/pygobject,pexip/pygobject