Convert objc-lang.c to type-safe registry API

This changes objc-lang.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

	* objc-lang.c (objc_objfile_data): Change type.
	(find_methods): Update.
	(_initialize_objc_lang): Remove.
This commit is contained in:
Tom Tromey 2019-05-02 16:08:54 -06:00
parent d772d2abcc
commit 4c58e3376d
2 changed files with 9 additions and 13 deletions

View file

@ -1,3 +1,9 @@
2019-05-08 Tom Tromey <tom@tromey.com>
* objc-lang.c (objc_objfile_data): Change type.
(find_methods): Update.
(_initialize_objc_lang): Remove.
2019-05-08 Tom Tromey <tom@tromey.com> 2019-05-08 Tom Tromey <tom@tromey.com>
* stabsread.c (rs6000_builtin_type_data): Change type. * stabsread.c (rs6000_builtin_type_data): Change type.

View file

@ -75,7 +75,7 @@ struct objc_method {
CORE_ADDR imp; CORE_ADDR imp;
}; };
static const struct objfile_data *objc_objfile_data; static const struct objfile_key<unsigned int> objc_objfile_data;
/* Lookup a structure type named "struct NAME", visible in lexical /* Lookup a structure type named "struct NAME", visible in lexical
block BLOCK. If NOERR is nonzero, return zero if NAME is not block BLOCK. If NOERR is nonzero, return zero if NAME is not
@ -1004,7 +1004,7 @@ find_methods (char type, const char *theclass, const char *category,
unsigned int objfile_csym = 0; unsigned int objfile_csym = 0;
objc_csym = (unsigned int *) objfile_data (objfile, objc_objfile_data); objc_csym = objc_objfile_data.get (objfile);
if (objc_csym != NULL && *objc_csym == 0) if (objc_csym != NULL && *objc_csym == 0)
/* There are no ObjC symbols in this objfile. Skip it entirely. */ /* There are no ObjC symbols in this objfile. Skip it entirely. */
continue; continue;
@ -1056,11 +1056,7 @@ find_methods (char type, const char *theclass, const char *category,
} }
if (objc_csym == NULL) if (objc_csym == NULL)
{ objc_csym = objc_objfile_data.emplace (objfile, objfile_csym);
objc_csym = XOBNEW (&objfile->objfile_obstack, unsigned int);
*objc_csym = objfile_csym;
set_objfile_data (objfile, objc_objfile_data, objc_csym);
}
else else
/* Count of ObjC methods in this objfile should be constant. */ /* Count of ObjC methods in this objfile should be constant. */
gdb_assert (*objc_csym == objfile_csym); gdb_assert (*objc_csym == objfile_csym);
@ -1576,9 +1572,3 @@ resolve_msgsend_super_stret (CORE_ADDR pc, CORE_ADDR *new_pc)
return 1; return 1;
return 0; return 0;
} }
void
_initialize_objc_lang (void)
{
objc_objfile_data = register_objfile_data ();
}