Fix bug #26419 by removing bogus code which was used on targets where

MFRAME_STRUCT_BYREF is defined.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28331 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Wolfgang Lux 2009-06-06 14:44:26 +00:00
parent 9a886d9d6f
commit 9c86cf78f2
2 changed files with 7 additions and 21 deletions

View file

@ -1,3 +1,10 @@
2009-06-06 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/GSFFIInvocation.m
(-initWithCallback:returnp:values:frame:signature:): Fix bug
#26419 by removing bogus code which was used on targets where
MFRAME_STRUCT_BYREF is defined.
2009-06-06 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/Unicode.m: When converting from a characterset

View file

@ -266,32 +266,11 @@ IMP gs_objc_msg_forward (SEL sel)
* in the NSInvocation if the stack is changed before the
* invocation is used.
*/
#if MFRAME_STRUCT_BYREF
for (i = 0; i < ((cifframe_t *)_cframe)->nargs; i++)
{
const char *t = _info[i+1].type;
if (*t == _C_STRUCT_B || *t == _C_UNION_B || *t == _C_ARY_B)
{
/* Fix up some of the values. Do this on all processors that pass
structs by reference.
Is there an automatic way to determine this? */
memcpy(((cifframe_t *)_cframe)->values[i], *(void **)vals[i],
((cifframe_t *)_cframe)->arg_types[i]->size);
}
else
{
memcpy(((cifframe_t *)_cframe)->values[i], vals[i],
((cifframe_t *)_cframe)->arg_types[i]->size);
}
}
#else
for (i = 0; i < ((cifframe_t *)_cframe)->nargs; i++)
{
memcpy(((cifframe_t *)_cframe)->values[i], vals[i],
((cifframe_t *)_cframe)->arg_types[i]->size);
}
#endif
_retval = retp;
return self;
}