glsl: make consistent use of DECLARE_RALLOC_CXX_OPERATORS
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 30 Sep 2014 04:12:40 +0000 (00:12 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 2 Oct 2014 04:59:35 +0000 (00:59 -0400)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/glsl_symbol_table.h
src/glsl/loop_analysis.h

index 2528264..e32b88b 100644 (file)
@@ -43,37 +43,8 @@ struct glsl_type;
  * type safe and some symbol table invariants.
  */
 struct glsl_symbol_table {
-private:
-   static void
-   _glsl_symbol_table_destructor (glsl_symbol_table *table)
-   {
-      table->~glsl_symbol_table();
-   }
-
-public:
-   /* Callers of this ralloc-based new need not call delete. It's
-    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-   static void* operator new(size_t size, void *ctx)
-   {
-      void *table;
-
-      table = ralloc_size(ctx, size);
-      assert(table != NULL);
-
-      ralloc_set_destructor(table, (void (*)(void*)) _glsl_symbol_table_destructor);
-
-      return table;
-   }
-
-   /* If the user *does* call delete, that's OK, we will just
-    * ralloc_free in that case. Here, C++ will have already called the
-    * destructor so tell ralloc not to do that again. */
-   static void operator delete(void *table)
-   {
-      ralloc_set_destructor(table, NULL);
-      ralloc_free(table);
-   }
-   
+   DECLARE_RALLOC_CXX_OPERATORS(glsl_symbol_table)
+
    glsl_symbol_table();
    ~glsl_symbol_table();
 
index 31be4f3..3b1971d 100644 (file)
@@ -140,22 +140,7 @@ public:
       hash_table_dtor(this->var_hash);
    }
 
-   static void* operator new(size_t size, void *ctx)
-   {
-      void *lvs = ralloc_size(ctx, size);
-      assert(lvs != NULL);
-
-      ralloc_set_destructor(lvs, (void (*)(void*)) destructor);
-
-      return lvs;
-   }
-
-private:
-   static void
-   destructor(loop_variable_state *lvs)
-   {
-      lvs->~loop_variable_state();
-   }
+   DECLARE_RALLOC_CXX_OPERATORS(loop_variable_state)
 };