MOO-cows Mailing List Archive
Re: value bytes of error codes
On Thu, 28 Mar 1996, Don Schwarz wrote:
> On Thu, 28 Mar 1996 email@example.com wrote:
> > I was just wondering why something like value_bytes(E_PERM) returns 0. Do
> > error values take up any space in the database? If so, how much?
> My guess would be because the compiler takes care of allocating the memory
> for errors, integers, etc. as opposed to lists and strings which the MOO
> allocates and frees itself. So yes, integers and errors do take up space.
> On disk, they just take up the amount of space it takes to print
> them (1 character for '5', 6 characters for '123456', etc) but in memory, I
> believe all integers take up 32 bits, and errors take 8, but I'm just
> guessing, I haven't actually checked the code.
An error in memory is part of a Var structure, which contains a
union of, among other things, a char *, so the Var struct is as large as
a char *--generally 4 bytes--plus the size of the type field, which may
be 2 bytes, but will effectively be 4 bytes on many systems due to struct
alignment on 4-byte word bounderies...
Subject Index |