[Issue 10589] GC.malloc(sz, GC.BlkAttr.APPENDABLE) fails after a certain size

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Jul 12 14:59:13 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10589



--- Comment #3 from Rainer Schuetze <r.sagitario at gmx.de> 2013-07-12 14:59:12 PDT ---
>Is the memory layout for the APPENDABLE data documented somewhere, or are these
just reverse-engineered magic numbers?

There is some description in rt/lifetime.d starting around line 200.

>Nope (I think). Length is carried in the slice, not the block. 
> Block only contains capacity/used info.

Sorry, I meant the "used" info that must be reset.

>In particular, the magic numbers should be user accessible via manifest
> constants, or functions, so as to not have to guess/reverse engineer them. 

The constants are defined privately in lifetime.d as SMALLPAD, MEDPAD and
LARGEPAD. I suspect the trailing byte for large arrays is added so that
arr[$..$] always points into the same memory block, and not the next one.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list