unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
* unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable. (uw_frame_state_for): Constify variables. (extract_cie_info): Constify first argument. * unwind-dw2-fde-darwin.c: Adjust prototype of _Unwind_Find_registered_FDE for recent changes. (examine_objects): Constify return value and local variable result. (_Unwind_Find_FDE): Constify return value and local variable ret. From-SVN: r73172
This commit is contained in:
parent
8ecde51fff
commit
f1518966c3
@ -1,3 +1,14 @@
|
||||
2003-11-01 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
|
||||
(uw_frame_state_for): Constify variables.
|
||||
(extract_cie_info): Constify first argument.
|
||||
|
||||
* unwind-dw2-fde-darwin.c: Adjust prototype of
|
||||
_Unwind_Find_registered_FDE for recent changes.
|
||||
(examine_objects): Constify return value and local variable result.
|
||||
(_Unwind_Find_FDE): Constify return value and local variable ret.
|
||||
|
||||
2003-10-31 Per Bothner <pbothner@apple.com>
|
||||
|
||||
* c-opts.c (finish_options): Change to returns boolean - false iff
|
||||
|
@ -41,8 +41,8 @@ typedef int __gthread_mutex_t;
|
||||
#define __gthread_mutex_lock(x) (void)(x)
|
||||
#define __gthread_mutex_unlock(x) (void)(x)
|
||||
|
||||
static fde * _Unwind_Find_registered_FDE (void *pc,
|
||||
struct dwarf_eh_bases *bases);
|
||||
static const fde * _Unwind_Find_registered_FDE (void *pc,
|
||||
struct dwarf_eh_bases *bases);
|
||||
|
||||
#define _Unwind_Find_FDE _Unwind_Find_registered_FDE
|
||||
#include "unwind-dw2-fde.c"
|
||||
@ -99,7 +99,7 @@ enum {
|
||||
because this object might be about to be unloaded. Called by
|
||||
KeyMgr. */
|
||||
|
||||
static void
|
||||
static void
|
||||
live_image_destructor (struct live_images *image)
|
||||
{
|
||||
if (image->object_info)
|
||||
@ -136,11 +136,11 @@ live_image_destructor (struct live_images *image)
|
||||
give each unseen image a new `struct object'. Even if we can't,
|
||||
check whether the PC is inside the FDE of each unseen image.
|
||||
*/
|
||||
|
||||
static inline fde *
|
||||
|
||||
static inline const fde *
|
||||
examine_objects (void *pc, struct dwarf_eh_bases *bases, int dont_alloc)
|
||||
{
|
||||
fde *result = NULL;
|
||||
const fde *result = NULL;
|
||||
struct live_images *image;
|
||||
|
||||
image = _keymgr_get_and_lock_processwide_ptr (KEYMGR_GCC3_LIVE_IMAGE_LIST);
|
||||
@ -150,7 +150,7 @@ examine_objects (void *pc, struct dwarf_eh_bases *bases, int dont_alloc)
|
||||
{
|
||||
char *fde;
|
||||
unsigned long sz;
|
||||
|
||||
|
||||
fde = getsectdatafromheader (image->mh, "__DATA", "__eh_frame", &sz);
|
||||
if (fde == NULL)
|
||||
{
|
||||
@ -159,20 +159,20 @@ examine_objects (void *pc, struct dwarf_eh_bases *bases, int dont_alloc)
|
||||
if (fde != NULL)
|
||||
image->examined_p |= IMAGE_IS_TEXT_MASK;
|
||||
}
|
||||
|
||||
|
||||
/* If .eh_frame is empty, don't register at all. */
|
||||
if (fde != NULL && sz > 0)
|
||||
{
|
||||
char *real_fde = (fde + image->vm_slide);
|
||||
struct object *ob = NULL;
|
||||
struct object panicob;
|
||||
|
||||
|
||||
if (! dont_alloc)
|
||||
ob = calloc (1, sizeof (struct object));
|
||||
dont_alloc |= ob == NULL;
|
||||
if (dont_alloc)
|
||||
ob = &panicob;
|
||||
|
||||
|
||||
ob->pc_begin = (void *)-1;
|
||||
ob->tbase = 0;
|
||||
ob->dbase = 0;
|
||||
@ -180,19 +180,19 @@ examine_objects (void *pc, struct dwarf_eh_bases *bases, int dont_alloc)
|
||||
ob->s.i = 0;
|
||||
ob->s.b.encoding = DW_EH_PE_omit;
|
||||
ob->fde_end = real_fde + sz;
|
||||
|
||||
|
||||
image->fde = real_fde;
|
||||
|
||||
|
||||
result = search_object (ob, pc);
|
||||
|
||||
|
||||
if (! dont_alloc)
|
||||
{
|
||||
struct object **p;
|
||||
|
||||
image->destructor = live_image_destructor;
|
||||
image->object_info = ob;
|
||||
|
||||
image->examined_p |= (EXAMINED_IMAGE_MASK
|
||||
|
||||
image->examined_p |= (EXAMINED_IMAGE_MASK
|
||||
| DESTRUCTOR_MAY_BE_CALLED_LIVE);
|
||||
|
||||
/* Insert the object into the classified list. */
|
||||
@ -206,16 +206,16 @@ examine_objects (void *pc, struct dwarf_eh_bases *bases, int dont_alloc)
|
||||
if (result)
|
||||
{
|
||||
int encoding;
|
||||
|
||||
|
||||
bases->tbase = ob->tbase;
|
||||
bases->dbase = ob->dbase;
|
||||
|
||||
|
||||
encoding = ob->s.b.encoding;
|
||||
if (ob->s.b.mixed_encoding)
|
||||
encoding = get_fde_encoding (result);
|
||||
read_encoded_value_with_base (encoding,
|
||||
read_encoded_value_with_base (encoding,
|
||||
base_from_object (encoding, ob),
|
||||
result->pc_begin,
|
||||
result->pc_begin,
|
||||
(_Unwind_Ptr *)&bases->func);
|
||||
break;
|
||||
}
|
||||
@ -229,25 +229,25 @@ examine_objects (void *pc, struct dwarf_eh_bases *bases, int dont_alloc)
|
||||
return result;
|
||||
}
|
||||
|
||||
fde *
|
||||
const fde *
|
||||
_Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases)
|
||||
{
|
||||
struct km_object_info *the_obj_info;
|
||||
fde *ret = NULL;
|
||||
const fde *ret = NULL;
|
||||
|
||||
the_obj_info =
|
||||
the_obj_info =
|
||||
_keymgr_get_and_lock_processwide_ptr (KEYMGR_GCC3_DW2_OBJ_LIST);
|
||||
if (! the_obj_info)
|
||||
the_obj_info = calloc (1, sizeof (*the_obj_info));
|
||||
|
||||
|
||||
if (the_obj_info != NULL)
|
||||
{
|
||||
seen_objects = the_obj_info->seen_objects;
|
||||
unseen_objects = the_obj_info->unseen_objects;
|
||||
|
||||
|
||||
ret = _Unwind_Find_registered_FDE (pc, bases);
|
||||
}
|
||||
|
||||
|
||||
/* OK, didn't find it in the list of FDEs we've seen before,
|
||||
so go through and look at the new ones. */
|
||||
if (ret == NULL)
|
||||
|
@ -290,7 +290,7 @@ void *
|
||||
_Unwind_FindEnclosingFunction (void *pc)
|
||||
{
|
||||
struct dwarf_eh_bases bases;
|
||||
struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
|
||||
const struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
|
||||
if (fde)
|
||||
return bases.func;
|
||||
else
|
||||
@ -316,7 +316,7 @@ _Unwind_GetTextRelBase (struct _Unwind_Context *context)
|
||||
or NULL if we encountered an undecipherable augmentation. */
|
||||
|
||||
static const unsigned char *
|
||||
extract_cie_info (struct dwarf_cie *cie, struct _Unwind_Context *context,
|
||||
extract_cie_info (const struct dwarf_cie *cie, struct _Unwind_Context *context,
|
||||
_Unwind_FrameState *fs)
|
||||
{
|
||||
const unsigned char *aug = cie->augmentation;
|
||||
@ -1001,8 +1001,8 @@ execute_cfa_program (const unsigned char *insn_ptr,
|
||||
static _Unwind_Reason_Code
|
||||
uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
|
||||
{
|
||||
struct dwarf_fde *fde;
|
||||
struct dwarf_cie *cie;
|
||||
const struct dwarf_fde *fde;
|
||||
const struct dwarf_cie *cie;
|
||||
const unsigned char *aug, *insn, *end;
|
||||
|
||||
memset (fs, 0, sizeof (*fs));
|
||||
|
Loading…
Reference in New Issue
Block a user