static htab_t syscm_get_symbol_map (struct symbol *symbol) { htab_t htab; if (SYMBOL_OBJFILE_OWNED (symbol)) { struct objfile *objfile = symbol_objfile (symbol); htab = objfile_data (objfile, syscm_objfile_data_key); if (htab == NULL) { htab = gdbscm_create_eqable_gsmob_ptr_map (syscm_hash_symbol_smob, syscm_eq_symbol_smob); set_objfile_data (objfile, syscm_objfile_data_key, htab); } } else { struct gdbarch *gdbarch = symbol_arch (symbol); struct syscm_gdbarch_data *data = gdbarch_data (gdbarch, syscm_gdbarch_data_key); htab = data->htab; } return htab; }
static void * syscm_init_arch_symbols (struct gdbarch *gdbarch) { struct syscm_gdbarch_data *data = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct syscm_gdbarch_data); data->htab = gdbscm_create_eqable_gsmob_ptr_map (syscm_hash_symbol_smob, syscm_eq_symbol_smob); return data; }
static htab_t frscm_inferior_frame_map (struct inferior *inferior) { htab_t htab = inferior_data (inferior, frscm_inferior_data_key); if (htab == NULL) { htab = gdbscm_create_eqable_gsmob_ptr_map (frscm_hash_frame_smob, frscm_eq_frame_smob); set_inferior_data (inferior, frscm_inferior_data_key, htab); } return htab; }
static htab_t syscm_objfile_symbol_map (struct symbol *symbol) { struct objfile *objfile = SYMBOL_SYMTAB (symbol)->objfile; htab_t htab = objfile_data (objfile, syscm_objfile_data_key); if (htab == NULL) { htab = gdbscm_create_eqable_gsmob_ptr_map (syscm_hash_symbol_smob, syscm_eq_symbol_smob); set_objfile_data (objfile, syscm_objfile_data_key, htab); } return htab; }
static htab_t stscm_objfile_symtab_map (struct symtab *symtab) { struct objfile *objfile = SYMTAB_OBJFILE (symtab); htab_t htab = objfile_data (objfile, stscm_objfile_data_key); if (htab == NULL) { htab = gdbscm_create_eqable_gsmob_ptr_map (stscm_hash_symtab_smob, stscm_eq_symtab_smob); set_objfile_data (objfile, stscm_objfile_data_key, htab); } return htab; }