ref: 0418c645cf31011412e2bfaaca497130b8d5a658
parent: 19cecdac20157dc8638033e0d59f49ddcd1d82ff
author: Doug Currie <github.9.eeeeeee@spamgourmet.com>
date: Fri Aug 18 09:48:32 EDT 2017
Eliminated caching of overconstrained array types for cvalues
--- a/types.c
+++ b/types.c
@@ -48,7 +48,7 @@
ft->elsz = eltype->size;
ft->eltype = eltype;
ft->init = &cvalue_array_init;
- eltype->artype = ft;
+ //eltype->artype = ft; -- this is a bad idea since some types carry array sizes
}
else if (car_(t) == enumsym) {
ft->numtype = T_INT32;
@@ -62,9 +62,9 @@
fltype_t *get_array_type(value_t eltype)
{
fltype_t *et = get_type(eltype);
- if (et->artype != NULL)
- return et->artype;
- return get_type(fl_list2(arraysym, eltype));
+ if (et->artype == NULL)
+ et->artype = get_type(fl_list2(arraysym, eltype));
+ return et->artype;
}
fltype_t *define_opaque_type(value_t sym, size_t sz, cvtable_t *vtab,