| @@ -128,11 +128,11 @@ cvalue_(const sl_type *type, usize sz, bool nofinalize) · 127 unmodified lines |
| 128 | 128 | void *data = MEM_ALLOC(sz); |
| 129 | 129 | if(sl_unlikely(data == nil)) |
| 130 | 130 | cthrow(lerrorf(sl_errmem, "no memory for a cv"), type); |
| 131 | + slvm.malloc_pressure += sz; |
| 131 | 132 | pcv = alloc_words(CVALUE_NWORDS); |
| 132 | 133 | pcv->type = type; |
| 133 | 134 | pcv->data = data; |
| 134 | 135 | cv_autorelease(pcv); |
| 135 | | − slvm.malloc_pressure += sz; |
| 136 | 136 | } |
| 137 | 137 | if(str){ |
| 138 | 138 | ((char*)pcv->data)[--sz] = '\0'; |
| @@ -212,6 +212,7 @@ cv_pin(sl_cv *cv) · 73 unmodified lines |
| 212 | 212 | void *data = MEM_ALLOC(sz); |
| 213 | 213 | if(sl_unlikely(data == nil)) |
| 214 | 214 | cthrow(lerrorf(sl_errmem, "no memory to pin a cv"), cv); |
| 215 | + slvm.malloc_pressure += sz; |
| 215 | 216 | memcpy(data, cv_data(cv), sz); |
| 216 | 217 | cv->data = data; |
| 217 | 218 | cv_autorelease(cv); |
| @@ -789,8 +790,11 @@ cvalue_copy(sl_v v) · 571 unmodified lines |
| 789 | 790 | usize len = cv_len(cv) + (cv_isstr(cv) ? 1 : 0); |
| 790 | 791 | bool inlined = isinlined(cv); |
| 791 | 792 | void *data = nil; |
| 792 | | − if(!inlined && sl_unlikely((data = MEM_ALLOC(len)) == nil)) |
| 793 | | − cthrow(lerrorf(sl_errmem, "no memory for a cv copy"), v); |
| 793 | + if(!inlined){ |
| 794 | + if(sl_unlikely((data = MEM_ALLOC(len)) == nil)) |
| 795 | + cthrow(lerrorf(sl_errmem, "no memory for a cv copy"), v); |
| 796 | + slvm.malloc_pressure += len; |
| 797 | + } |
| 794 | 798 | |
| 795 | 799 | PUSH(v); |
| 796 | 800 | sl_cv *ncv = alloc_words(nw); |