|
|
|
@ -486,8 +486,7 @@ BEGIN_PERSONALITY_FUNCTION(__gnustep_objc_personality_v0)
|
|
|
|
return internal_objc_personality(version, actions, exceptionClass,
|
|
|
|
return internal_objc_personality(version, actions, exceptionClass,
|
|
|
|
exceptionObject, context, YES);
|
|
|
|
exceptionObject, context, YES);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// FIXME!
|
|
|
|
|
|
|
|
#ifndef __arm__
|
|
|
|
|
|
|
|
BEGIN_PERSONALITY_FUNCTION(__gnustep_objcxx_personality_v0)
|
|
|
|
BEGIN_PERSONALITY_FUNCTION(__gnustep_objcxx_personality_v0)
|
|
|
|
if (exceptionClass == objc_exception_class)
|
|
|
|
if (exceptionClass == objc_exception_class)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -497,17 +496,15 @@ BEGIN_PERSONALITY_FUNCTION(__gnustep_objcxx_personality_v0)
|
|
|
|
id *newEx = __cxa_allocate_exception(sizeof(id));
|
|
|
|
id *newEx = __cxa_allocate_exception(sizeof(id));
|
|
|
|
*newEx = ex->object;
|
|
|
|
*newEx = ex->object;
|
|
|
|
ex->cxx_exception = objc_init_cxx_exception(newEx);
|
|
|
|
ex->cxx_exception = objc_init_cxx_exception(newEx);
|
|
|
|
|
|
|
|
memcpy(ex->cxx_exception, exceptionObject, sizeof(struct _Unwind_Exception));
|
|
|
|
ex->cxx_exception->exception_class = cxx_exception_class;
|
|
|
|
ex->cxx_exception->exception_class = cxx_exception_class;
|
|
|
|
ex->cxx_exception->exception_cleanup = cleanup;
|
|
|
|
ex->cxx_exception->exception_cleanup = cleanup;
|
|
|
|
ex->cxx_exception->private_1 = exceptionObject->private_1;
|
|
|
|
|
|
|
|
ex->cxx_exception->private_2 = exceptionObject->private_2;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
exceptionObject = ex->cxx_exception;
|
|
|
|
exceptionObject = ex->cxx_exception;
|
|
|
|
exceptionClass = cxx_exception_class;
|
|
|
|
exceptionClass = cxx_exception_class;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return CALL_PERSONALITY_FUNCTION(__gxx_personality_v0);
|
|
|
|
return CALL_PERSONALITY_FUNCTION(__gxx_personality_v0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Weak references to C++ runtime functions. We don't bother testing that
|
|
|
|
// Weak references to C++ runtime functions. We don't bother testing that
|
|
|
|
// these are 0 before calling them, because if they are not resolved then we
|
|
|
|
// these are 0 before calling them, because if they are not resolved then we
|
|
|
|
|