]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
Fixed: block-labels were NULLed after being set -_-
authorWolfgang Bumiller <wolfgang.linux@bumiller.com>
Sat, 28 Apr 2012 09:49:52 +0000 (11:49 +0200)
committerWolfgang Bumiller <wolfgang.linux@bumiller.com>
Sat, 28 Apr 2012 09:50:09 +0000 (11:50 +0200)
ir.c

diff --git a/ir.c b/ir.c
index 8c467ad99d5c0011b616f2b158376f24da42fadc..4197620a5c2723f415f43ae8a34899283d6d406a 100644 (file)
--- a/ir.c
+++ b/ir.c
@@ -140,6 +140,7 @@ ir_function* ir_function_new(ir_builder* owner)
 {
     ir_function *self;
     self = (ir_function*)mem_a(sizeof(*self));
 {
     ir_function *self;
     self = (ir_function*)mem_a(sizeof(*self));
+    self->name = NULL;
     if (!ir_function_set_name(self, "<@unnamed>")) {
         mem_d(self);
         return NULL;
     if (!ir_function_set_name(self, "<@unnamed>")) {
         mem_d(self);
         return NULL;
@@ -251,6 +252,7 @@ ir_block* ir_block_new(ir_function* owner, const char *name)
 {
     ir_block *self;
     self = (ir_block*)mem_a(sizeof(*self));
 {
     ir_block *self;
     self = (ir_block*)mem_a(sizeof(*self));
+    self->label = NULL;
     if (!ir_block_set_label(self, name)) {
         mem_d(self);
         return NULL;
     if (!ir_block_set_label(self, name)) {
         mem_d(self);
         return NULL;
@@ -262,7 +264,6 @@ ir_block* ir_block_new(ir_function* owner, const char *name)
     MEM_VECTOR_INIT(self, instr);
     MEM_VECTOR_INIT(self, entries);
     MEM_VECTOR_INIT(self, exits);
     MEM_VECTOR_INIT(self, instr);
     MEM_VECTOR_INIT(self, entries);
     MEM_VECTOR_INIT(self, exits);
-    self->label = NULL;
 
     self->eid = 0;
     self->is_return = false;
 
     self->eid = 0;
     self->is_return = false;
@@ -278,7 +279,7 @@ MEM_VEC_FUNCTIONS_ALL(ir_block, ir_value*, living)
 void ir_block_delete(ir_block* self)
 {
     size_t i;
 void ir_block_delete(ir_block* self)
 {
     size_t i;
-    mem_d((void*)self->label);
+    mem_d(self->label);
     for (i = 0; i != self->instr_count; ++i)
         ir_instr_delete(self->instr[i]);
     MEM_VECTOR_CLEAR(self, instr);
     for (i = 0; i != self->instr_count; ++i)
         ir_instr_delete(self->instr[i]);
     MEM_VECTOR_CLEAR(self, instr);