/*
* Mesa 3-D graphics library
- * Version: 6.6
+ * Version: 6.5.3
*
- * Copyright (C) 2005-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 2005-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* \author Michal Krol
*/
-#include "imports.h"
+#include "main/imports.h"
#include "slang_utility.h"
+#include "slang_mem.h"
-char *slang_string_concat (char *dst, const char *src)
+char *
+slang_string_concat (char *dst, const char *src)
{
- return _mesa_strcpy (dst + _mesa_strlen (dst), src);
+ return _mesa_strcpy (dst + _mesa_strlen (dst), src);
}
+
/* slang_string */
GLvoid
entry = pool->entries[i];
while (entry != NULL) {
- slang_atom_entry *next;
-
- next = entry->next;
- slang_alloc_free(entry->id);
- slang_alloc_free(entry);
+ slang_atom_entry *next = entry->next;
+ _slang_free(entry->id);
+ _slang_free(entry);
entry = next;
- }
- }
+ }
+ }
}
/*
* Search the atom pool for an atom with a given name.
* If atom is not found, create and add it to the pool.
- * Returns ATOM_NULL if the atom was not found and the function failed to create a new atom.
+ * Returns ATOM_NULL if the atom was not found and the function failed
+ * to create a new atom.
*/
slang_atom
slang_atom_pool_atom(slang_atom_pool * pool, const char * id)
}
hash %= SLANG_ATOM_POOL_SIZE;
- /* Now the hash points to a linked list of atoms with names that have the same hash value.
- * Search the linked list for a given name. */
+ /* Now the hash points to a linked list of atoms with names that
+ * have the same hash value. Search the linked list for a given
+ * name.
+ */
entry = &pool->entries[hash];
while (*entry != NULL) {
/* If the same, return the associated atom. */
}
/* Okay, we have not found an atom. Create a new entry for it.
- * Note that the <entry> points to the last entry's <next> field. */
- *entry = (slang_atom_entry *) (slang_alloc_malloc(sizeof(slang_atom_entry)));
+ * Note that the <entry> points to the last entry's <next> field.
+ */
+ *entry = (slang_atom_entry *) _slang_alloc(sizeof(slang_atom_entry));
if (*entry == NULL)
return SLANG_ATOM_NULL;
- /* Initialize a new entry. Because we'll need the actual name of the atom, we use the pointer
- * to this string as an actual atom's value. */
+ /* Initialize a new entry. Because we'll need the actual name of
+ * the atom, we use the pointer to this string as an actual atom's
+ * value.
+ */
(**entry).next = NULL;
- (**entry).id = slang_string_duplicate(id);
+ (**entry).id = _slang_strdup(id);
if ((**entry).id == NULL)
return SLANG_ATOM_NULL;
return (slang_atom) (**entry).id;
}
-/*
+/**
* Return the name of a given atom.
*/
const char *
slang_atom_pool_id(slang_atom_pool * pool, slang_atom atom)
{
- return (const char *) (atom);
-}
-
-
-/**
- * Generate a new, unique atom with given prefix.
- */
-slang_atom
-slang_atom_pool_gen(slang_atom_pool * pool, const char *prefix)
-{
- char name[1000];
- static int nextFree = 100;
- sprintf(name, "%s%d", prefix, nextFree);
- nextFree++;
- return slang_atom_pool_atom(pool, name);
+ return (const char *) (atom);
}