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 SCM gdbscm_symbol_symtab (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; if (!SYMBOL_OBJFILE_OWNED (symbol)) return SCM_BOOL_F; return stscm_scm_from_symtab (symbol_symtab (symbol)); }
static PyObject * sympy_get_symtab (PyObject *self, void *closure) { struct symbol *symbol = NULL; SYMPY_REQUIRE_VALID (self, symbol); if (!SYMBOL_OBJFILE_OWNED (symbol)) Py_RETURN_NONE; return symtab_to_symtab_object (symbol_symtab (symbol)); }