added _slang_label_new_unique()
authorBrian <brian@yutani.localnet.net>
Tue, 27 Mar 2007 21:18:17 +0000 (15:18 -0600)
committerBrian <brian@yutani.localnet.net>
Tue, 27 Mar 2007 22:06:47 +0000 (16:06 -0600)
src/mesa/shader/slang/slang_label.c
src/mesa/shader/slang/slang_label.h

index 4d35d2e72a1e0821ba8551e2780703a977ebb45a..e6a03f9e4f03b5f4b14b48c5d8b10d0d721e5a1d 100644 (file)
@@ -21,6 +21,27 @@ _slang_label_new(const char *name)
    return l;
 }
 
+/**
+ * As above, but suffix the name with a unique number.
+ */
+slang_label *
+_slang_label_new_unique(const char *name)
+{
+   static int id = 1;
+   slang_label *l = (slang_label *) _mesa_calloc(sizeof(slang_label));
+   if (l) {
+      l->Name = (char *) _mesa_malloc(_mesa_strlen(name) + 10);
+      if (!l->Name) {
+         _mesa_free(l);
+         return NULL;
+      }
+      _mesa_sprintf(l->Name, "%s_%d", name, id);
+      id++;
+      l->Location = -1;
+   }
+   return l;
+}
+
 void
 _slang_label_delete(slang_label *l)
 {
index 661624f173b48a94be586ce5b5efc6ecae934fe2..0f1a45b30f9febeda921144855434507a94ea214 100644 (file)
@@ -25,6 +25,9 @@ typedef struct slang_label_ slang_label;
 extern slang_label *
 _slang_label_new(const char *name);
 
+extern slang_label *
+_slang_label_new_unique(const char *name);
+
 extern void
 _slang_label_delete(slang_label *l);