Example #1
0
static void
reset_point(struct grecs_locus_point *point, struct grecs_symtab *st)
{
	struct grecs_syment *ent, key;
	int install = 1;

	if (!point->file)
		return;
	key.name = (char*) point->file;
	ent = grecs_symtab_lookup_or_install(st, &key, &install);
	if (!ent)
		grecs_alloc_die();
	point->file = ent->name;
}
Example #2
0
/* Lookup a text. If it does not exist, create it. */
char *
grecs_install_text(const char *str)
{
	struct grecs_syment key;
	struct grecs_syment *ent;
	int install = 1;

	if (!text_table) {
		text_table = grecs_symtab_create_default(
			              sizeof(struct grecs_syment));
		if (!text_table)
			grecs_alloc_die();
	}
  
	key.name = (char*) str;
	ent = grecs_symtab_lookup_or_install(text_table, &key, &install);
	if (!ent)
		grecs_alloc_die();
	return ent->name;
}