summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/glsl/glsl_symbol_table.h33
-rw-r--r--src/glsl/loop_analysis.h17
2 files changed, 3 insertions, 47 deletions
diff --git a/src/glsl/glsl_symbol_table.h b/src/glsl/glsl_symbol_table.h
index 25282641f1e..e32b88b8699 100644
--- a/src/glsl/glsl_symbol_table.h
+++ b/src/glsl/glsl_symbol_table.h
@@ -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();
diff --git a/src/glsl/loop_analysis.h b/src/glsl/loop_analysis.h
index 31be4f3cfa0..3b1971d7edc 100644
--- a/src/glsl/loop_analysis.h
+++ b/src/glsl/loop_analysis.h
@@ -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)
};