X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani.mdc;h=18e593065705ea6324a6ddf68250142df4ec3d72;hp=7ff26c5f7aac1871ac03b9e1fa2fd79aa9c37bd2;hb=19148dce964ae988dab3981c8d7365576fb4767b;hpb=3c4cea0b5abc137df4b26ef443f24186cf9cb3f5 diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index 7ff26c5..18e5930 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -537,6 +537,9 @@ Named type are stored in a simple linked list. Objects of each type are { struct value *ret; + if (t->prepare_type) + t->prepare_type(t); + ret = calloc(1, t->size); if (init) memcpy(ret, init, t->size); @@ -3366,9 +3369,6 @@ it is declared, and error will be raised as the name is created as v = v->merged; free_value(v->type, v->val); free(v->val); - if (v->type->prepare_type) - // FIXME is this the first usage of the type? - v->type->prepare_type(v->type); if (b->right) { right = interp_exec(b->right, &rtype); v->val = val_alloc(v->type, &right);