]> git.draconx.ca Git - gob-dx.git/blobdiff - src/treefuncs.c
Release 2.0.16
[gob-dx.git] / src / treefuncs.c
index 6c2ca4092631d757e7e58b0dda984483c84e1155..ac2fd0127c1223c906f17d236075f5e346064e38 100644 (file)
@@ -105,6 +105,7 @@ enum {
        QUARK_interfaces_STEAL,
        QUARK_nodes,
        QUARK_nodes_STEAL,
+       QUARK_abstract,
        QUARK_name,
        QUARK_name_STEAL,
        QUARK_pointer,
@@ -157,6 +158,8 @@ enum {
        QUARK_id_STEAL,
        QUARK_args,
        QUARK_args_STEAL,
+       QUARK_funcattrs,
+       QUARK_funcattrs_STEAL,
        QUARK_onerror,
        QUARK_onerror_STEAL,
        QUARK_defreturn,
@@ -212,6 +215,7 @@ ensure_quarks (void)
        g_hash_table_insert (quark_ht, "interfaces:steal", GINT_TO_POINTER (QUARK_interfaces_STEAL));
        g_hash_table_insert (quark_ht, "nodes", GINT_TO_POINTER (QUARK_nodes));
        g_hash_table_insert (quark_ht, "nodes:steal", GINT_TO_POINTER (QUARK_nodes_STEAL));
+       g_hash_table_insert (quark_ht, "abstract", GINT_TO_POINTER (QUARK_abstract));
        g_hash_table_insert (quark_ht, "name", GINT_TO_POINTER (QUARK_name));
        g_hash_table_insert (quark_ht, "name:steal", GINT_TO_POINTER (QUARK_name_STEAL));
        g_hash_table_insert (quark_ht, "pointer", GINT_TO_POINTER (QUARK_pointer));
@@ -264,6 +268,8 @@ ensure_quarks (void)
        g_hash_table_insert (quark_ht, "id:steal", GINT_TO_POINTER (QUARK_id_STEAL));
        g_hash_table_insert (quark_ht, "args", GINT_TO_POINTER (QUARK_args));
        g_hash_table_insert (quark_ht, "args:steal", GINT_TO_POINTER (QUARK_args_STEAL));
+       g_hash_table_insert (quark_ht, "funcattrs", GINT_TO_POINTER (QUARK_funcattrs));
+       g_hash_table_insert (quark_ht, "funcattrs:steal", GINT_TO_POINTER (QUARK_funcattrs_STEAL));
        g_hash_table_insert (quark_ht, "onerror", GINT_TO_POINTER (QUARK_onerror));
        g_hash_table_insert (quark_ht, "onerror:steal", GINT_TO_POINTER (QUARK_onerror_STEAL));
        g_hash_table_insert (quark_ht, "defreturn", GINT_TO_POINTER (QUARK_defreturn));
@@ -360,6 +366,7 @@ copy_class (Class * self)
        new->chunk_size = g_strdup (self->chunk_size);
        new->interfaces = g_list_copy (self->interfaces); COPY_LIST_VALS(new->interfaces, g_strdup);
        new->nodes = node_list_copy (self->nodes);
+       new->abstract = self->abstract;
        return new;
 }
 
@@ -448,6 +455,7 @@ copy_method (Method * self)
        new->flags = g_list_copy (self->flags); COPY_LIST_VALS(new->flags, g_strdup);
        new->id = g_strdup (self->id);
        new->args = node_list_copy (self->args);
+       new->funcattrs = g_strdup (self->funcattrs);
        new->onerror = g_strdup (self->onerror);
        new->defreturn = g_strdup (self->defreturn);
        new->cbuf = g_strdup (self->cbuf);
@@ -637,6 +645,7 @@ free_method (Method * self)
        g_list_foreach (self->flags, (GFunc)g_free, NULL); g_list_free (self->flags);
        g_free (self->id);
        node_list_free (self->args);
+       g_free (self->funcattrs);
        g_free (self->onerror);
        g_free (self->defreturn);
        g_free (self->cbuf);
@@ -947,6 +956,11 @@ setv_class (Class * self, va_list __ap)
                        self->nodes = nodes;
                        break;
                }
+               case QUARK_abstract: {
+                       gboolean abstract = va_arg (__ap, gboolean);
+                       self->abstract = abstract;
+                       break;
+               }
                default:
                        g_warning ("Argument named 'Class::%s' does not exist", arg);
                        break;
@@ -1293,6 +1307,18 @@ setv_method (Method * self, va_list __ap)
                        self->args = args;
                        break;
                }
+               case QUARK_funcattrs: {
+                       char * funcattrs = va_arg (__ap, char *);
+                       char * __old_value = self->funcattrs;
+                       self->funcattrs = g_strdup (funcattrs);
+                       g_free (__old_value);
+                       break;
+               }
+               case QUARK_funcattrs_STEAL: {
+                       char * funcattrs = va_arg (__ap, char *);
+                       self->funcattrs = funcattrs;
+                       break;
+               }
                case QUARK_onerror: {
                        char * onerror = va_arg (__ap, char *);
                        char * __old_value = self->onerror;