mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* gc.c: cancel IA64 changes unnecessary for 1.8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9364351cbf
commit
d329ced71d
1 changed files with 4 additions and 15 deletions
19
gc.c
19
gc.c
|
|
@ -39,14 +39,10 @@
|
|||
*/
|
||||
#define __libc_ia64_register_backing_store_base (4ULL<<61)
|
||||
#else
|
||||
#ifdef HAVE_UNWIND_H
|
||||
#include <unwind.h>
|
||||
#else
|
||||
#pragma weak __libc_ia64_register_backing_store_base
|
||||
extern unsigned long __libc_ia64_register_backing_store_base;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined _WIN32 || defined __CYGWIN__
|
||||
#include <windows.h>
|
||||
|
|
@ -1362,21 +1358,14 @@ garbage_collect()
|
|||
{
|
||||
ucontext_t ctx;
|
||||
VALUE *top, *bot;
|
||||
#ifdef HAVE_UNWIND_H
|
||||
_Unwind_Context *unwctx = _UNW_createContextForSelf();
|
||||
#endif
|
||||
|
||||
getcontext(&ctx);
|
||||
mark_locations_array((VALUE*)&ctx.uc_mcontext,
|
||||
((size_t)(sizeof(VALUE)-1 + sizeof ctx.uc_mcontext)/sizeof(VALUE)));
|
||||
#ifdef HAVE_UNWIND_H
|
||||
_UNW_currentContext(unwctx);
|
||||
bot = (VALUE*)(long)_UNW_getAR(unwctx, _UNW_AR_BSP);
|
||||
top = (VALUE*)(long)_UNW_getAR(unwctx, _UNW_AR_BSPSTORE);
|
||||
_UNW_destroyContext(unwctx);
|
||||
#else
|
||||
bot = (VALUE*)__libc_ia64_register_backing_store_base;
|
||||
top = (VALUE*)ctx.uc_mcontext.IA64_BSPSTORE;
|
||||
#if defined(__FreeBSD__)
|
||||
top = (VALUE*)ctx.uc_mcontext.mc_special.bspstore;
|
||||
#else
|
||||
top = (VALUE*)ctx.uc_mcontext.sc_ar_bsp;
|
||||
#endif
|
||||
rb_gc_mark_locations(bot, top);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue