]> Nishi Git Mirror - gwion.git/commitdiff
:art: Low Level plugs
authorfennecdjay <fennecdjay@gmail.com>
Mon, 19 Sep 2022 08:39:23 +0000 (10:39 +0200)
committerfennecdjay <fennecdjay@gmail.com>
Mon, 19 Sep 2022 08:39:23 +0000 (10:39 +0200)
include/env/type.h
src/lib/array.c

index f101936ec52ffabd9326e0fc8e36c85be862e645..fbe56d9e3c3080521cc20da74067af7658d2579b 100644 (file)
@@ -47,9 +47,10 @@ struct Type_ {
   m_str             name;
   Nspc              nspc;
   struct TypeInfo_ *info;
-  uint64_t            size;
-  uint32_t            array_depth;
+  uint64_t          size;
+  uint64_t          actual_size;
   struct Vector_    effects; // pre-ctor effects
+  uint32_t            array_depth;
   uint16_t          ref;
   uint16_t          weight;
   ae_flag           flag;
index 9a535caf727cec331fe029e69d432536df2fb905..419f3be7942ea10cf6cbfc9f9ff31153de8c1c91 100644 (file)
@@ -38,7 +38,8 @@ ANN M_Object new_array(MemPool p, const Type t, const m_uint length) {
   const M_Object a = new_object(p, t);
   const m_uint   depth =
       !tflag(t, tflag_typedef) ? t->array_depth : t->info->parent->array_depth;
-  const m_uint size = depth > 1 ? SZ_INT : array_base(t)->size;
+//  const m_uint size = depth > 1 ? SZ_INT : array_base(t)->size;
+  const m_uint size = depth > 1 ? SZ_INT : array_base(t)->actual_size ?: array_base(t)->size;
   //ARRAY(a)          = new_m_vector(p, size, length);
   m_vector_init(ARRAY(a), size, length);
   return a;