X-Git-Url: https://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/072bb12e618b26cce359784aa56f9a2b70e1ce52..486240dc4c5d57b0afaddba60d87fe375112bed5:/src/treefuncs.c diff --git a/src/treefuncs.c b/src/treefuncs.c index 7ed3501..e424df3 100644 --- a/src/treefuncs.c +++ b/src/treefuncs.c @@ -41,12 +41,13 @@ Node * new_check (int chtype, char * number) return (Node *)self; } -Node * new_class (char * otype, char * ptype, GList * nodes) +Node * new_class (char * otype, char * ptype, char * chunk_size, GList * nodes) { Class * self = g_new0(Class, 1); self->type = CLASS_NODE; self->otype = otype; self->ptype = ptype; + self->chunk_size = chunk_size; self->nodes = nodes; return (Node *)self; } @@ -83,12 +84,12 @@ Node * new_method (int scope, int method, Type * mtype, char * otype, GList * gt return (Node *)self; } -Node * new_type (int stars, char * name, char * postfix) +Node * new_type (char * name, char * pointer, char * postfix) { Type * self = g_new0(Type, 1); self->type = TYPE_NODE; - self->stars = stars; self->name = name; + self->pointer = pointer; self->postfix = postfix; return (Node *)self; } @@ -112,8 +113,8 @@ Node * new_variable (int scope, Type * vtype, char * id, int line_no, char * des Argument * copy_argument (Argument * self) { Argument * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == ARGUMENT_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == ARGUMENT_NODE, NULL); new = g_new0(Argument, 1); new->type = ARGUMENT_NODE; new->gtktype = g_strdup(self->gtktype); @@ -131,8 +132,8 @@ Argument * copy_argument (Argument * self) CCode * copy_ccode (CCode * self) { CCode * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == CCODE_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == CCODE_NODE, NULL); new = g_new0(CCode, 1); new->type = CCODE_NODE; new->cctype = self->cctype; @@ -144,8 +145,8 @@ CCode * copy_ccode (CCode * self) Check * copy_check (Check * self) { Check * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == CHECK_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == CHECK_NODE, NULL); new = g_new0(Check, 1); new->type = CHECK_NODE; new->chtype = self->chtype; @@ -156,12 +157,13 @@ Check * copy_check (Check * self) Class * copy_class (Class * self) { Class * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == CLASS_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == CLASS_NODE, NULL); new = g_new0(Class, 1); new->type = CLASS_NODE; new->otype = g_strdup(self->otype); new->ptype = g_strdup(self->ptype); + new->chunk_size = g_strdup(self->chunk_size); new->nodes = copy_node_list(self->nodes); return new; } @@ -169,8 +171,8 @@ Class * copy_class (Class * self) FuncArg * copy_funcarg (FuncArg * self) { FuncArg * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == FUNCARG_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == FUNCARG_NODE, NULL); new = g_new0(FuncArg, 1); new->type = FUNCARG_NODE; new->atype = copy_type(self->atype); @@ -182,8 +184,8 @@ FuncArg * copy_funcarg (FuncArg * self) Method * copy_method (Method * self) { Method * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == METHOD_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == METHOD_NODE, NULL); new = g_new0(Method, 1); new->type = METHOD_NODE; new->scope = self->scope; @@ -207,12 +209,12 @@ Method * copy_method (Method * self) Type * copy_type (Type * self) { Type * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == TYPE_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == TYPE_NODE, NULL); new = g_new0(Type, 1); new->type = TYPE_NODE; - new->stars = self->stars; new->name = g_strdup(self->name); + new->pointer = g_strdup(self->pointer); new->postfix = g_strdup(self->postfix); return new; } @@ -220,8 +222,8 @@ Type * copy_type (Type * self) Variable * copy_variable (Variable * self) { Variable * new; - g_return_if_fail(self != NULL); - g_return_if_fail(self->type == VARIABLE_NODE); + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->type == VARIABLE_NODE, NULL); new = g_new0(Variable, 1); new->type = VARIABLE_NODE; new->scope = self->scope; @@ -271,6 +273,7 @@ void free_class (Class * self) g_return_if_fail(self->type == CLASS_NODE); g_free(self->otype); g_free(self->ptype); + g_free(self->chunk_size); free_node_list(self->nodes); g_free(self); } @@ -306,6 +309,7 @@ void free_type (Type * self) g_return_if_fail(self != NULL); g_return_if_fail(self->type == TYPE_NODE); g_free(self->name); + g_free(self->pointer); g_free(self->postfix); g_free(self); } @@ -323,8 +327,8 @@ void free_variable (Variable * self) Node * copy_node(Node *node) { - g_return_if_fail(node != NULL); - g_return_if_fail(node->type >= 0 && node->type < LAST_NODE_TYPE); + g_return_val_if_fail(node != NULL, NULL); + g_return_val_if_fail(node->type >= 0 && node->type < LAST_NODE_TYPE, NULL); switch(node->type) { case ARGUMENT_NODE: return (Node *)copy_argument ((Argument *)node); case CCODE_NODE: return (Node *)copy_ccode ((CCode *)node);