gdb/
Make specifiable the make_function_type type memory ownership. * gdbtypes.c (make_function_type): New parameter `objfile', use it explicitely instead of TYPE-initialized removed local variable `objfile'. Describe `objfile' it in the function comment. (lookup_function_type): Update make_function_type callers. * gdbtypes.h (make_function_type): Update the prototype. * jv-lang.c (java_link_class_type): Update make_function_type callers. * dwarf2read.c (read_subroutine_type): Likewise. * stabsread.c (read_type): Likewise.
This commit is contained in:
parent
00adf2d469
commit
323427d1cb
6 changed files with 26 additions and 11 deletions
|
@ -1,3 +1,15 @@
|
|||
2009-05-01 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Make specifiable the make_function_type type memory ownership.
|
||||
* gdbtypes.c (make_function_type): New parameter `objfile', use it
|
||||
explicitely instead of TYPE-initialized removed local variable
|
||||
`objfile'. Describe `objfile' it in the function comment.
|
||||
(lookup_function_type): Update make_function_type callers.
|
||||
* gdbtypes.h (make_function_type): Update the prototype.
|
||||
* jv-lang.c (java_link_class_type): Update make_function_type callers.
|
||||
* dwarf2read.c (read_subroutine_type): Likewise.
|
||||
* stabsread.c (read_type): Likewise.
|
||||
|
||||
2009-05-01 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* go32-nat.c (go32_pid_to_str): Call normal_pid_to_str instead of
|
||||
|
|
|
@ -5110,7 +5110,7 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
|
|||
struct attribute *attr;
|
||||
|
||||
type = die_type (die, cu);
|
||||
ftype = make_function_type (type, (struct type **) 0);
|
||||
ftype = make_function_type (type, (struct type **) 0, cu->objfile);
|
||||
|
||||
/* All functions in C++, Pascal and Java have prototypes. */
|
||||
attr = dwarf2_attr (die, DW_AT_prototyped, cu);
|
||||
|
|
|
@ -378,24 +378,24 @@ lookup_reference_type (struct type *type)
|
|||
/* Lookup a function type that returns type TYPE. TYPEPTR, if
|
||||
nonzero, points to a pointer to memory where the function type
|
||||
should be stored. If *TYPEPTR is zero, update it to point to the
|
||||
function type we return. We allocate new memory if needed. */
|
||||
function type we return. We allocate new memory from OBJFILE if needed; use
|
||||
NULL for permanent types. */
|
||||
|
||||
struct type *
|
||||
make_function_type (struct type *type, struct type **typeptr)
|
||||
make_function_type (struct type *type, struct type **typeptr,
|
||||
struct objfile *objfile)
|
||||
{
|
||||
struct type *ntype; /* New type */
|
||||
struct objfile *objfile;
|
||||
|
||||
if (typeptr == 0 || *typeptr == 0) /* We'll need to allocate one. */
|
||||
{
|
||||
ntype = alloc_type (TYPE_OBJFILE (type));
|
||||
ntype = alloc_type (objfile);
|
||||
if (typeptr)
|
||||
*typeptr = ntype;
|
||||
}
|
||||
else /* We have storage, but need to reset it. */
|
||||
{
|
||||
ntype = *typeptr;
|
||||
objfile = TYPE_OBJFILE (ntype);
|
||||
smash_type (ntype);
|
||||
TYPE_OBJFILE (ntype) = objfile;
|
||||
}
|
||||
|
@ -415,7 +415,7 @@ make_function_type (struct type *type, struct type **typeptr)
|
|||
struct type *
|
||||
lookup_function_type (struct type *type)
|
||||
{
|
||||
return make_function_type (type, (struct type **) 0);
|
||||
return make_function_type (type, (struct type **) 0, TYPE_OBJFILE (type));
|
||||
}
|
||||
|
||||
/* Identify address space identifier by name --
|
||||
|
|
|
@ -1165,7 +1165,8 @@ extern struct type *make_pointer_type (struct type *, struct type **);
|
|||
|
||||
extern struct type *lookup_pointer_type (struct type *);
|
||||
|
||||
extern struct type *make_function_type (struct type *, struct type **);
|
||||
extern struct type *make_function_type (struct type *, struct type **,
|
||||
struct objfile *);
|
||||
|
||||
extern struct type *lookup_function_type (struct type *);
|
||||
|
||||
|
|
|
@ -557,7 +557,8 @@ java_link_class_type (struct type *type, struct value *clas)
|
|||
}
|
||||
fn_fields[k].physname = "";
|
||||
fn_fields[k].is_stub = 1;
|
||||
fn_fields[k].type = make_function_type (java_void_type, NULL); /* FIXME */
|
||||
/* FIXME */
|
||||
fn_fields[k].type = make_function_type (java_void_type, NULL, objfile);
|
||||
TYPE_CODE (fn_fields[k].type) = TYPE_CODE_METHOD;
|
||||
}
|
||||
|
||||
|
|
|
@ -1685,7 +1685,7 @@ again:
|
|||
|
||||
case 'f': /* Function returning another type */
|
||||
type1 = read_type (pp, objfile);
|
||||
type = make_function_type (type1, dbx_lookup_type (typenums));
|
||||
type = make_function_type (type1, dbx_lookup_type (typenums), objfile);
|
||||
break;
|
||||
|
||||
case 'g': /* Prototyped function. (Sun) */
|
||||
|
@ -1708,7 +1708,8 @@ again:
|
|||
const char *type_start = (*pp) - 1;
|
||||
struct type *return_type = read_type (pp, objfile);
|
||||
struct type *func_type
|
||||
= make_function_type (return_type, dbx_lookup_type (typenums));
|
||||
= make_function_type (return_type, dbx_lookup_type (typenums),
|
||||
objfile);
|
||||
struct type_list {
|
||||
struct type *type;
|
||||
struct type_list *next;
|
||||
|
|
Loading…
Reference in a new issue