[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: New behaviour of lua_Alloc missing in list of API changes
- From: Jan Behrens <public@...>
- Date: Tue, 5 Apr 2011 21:43:58 +0200
On Tuesday 05 April 2011 21:25:37 Jan Behrens wrote:
> On Tuesday 29 March 2011 19:30:33 Roberto Ierusalimschy wrote:
> > > when porting a program from Lua 5.1 to Lua 5.2, I experienced crashes
> > > within my custom memory allocator function, which I passed to
> > > lua_newstate.
> > >
> > > I finally found out that the expected behaviour of the allocator
> > > function has changed in Lua 5.2. See:
> > > http://www.lua.org/work/doc/manual.html#lua_Alloc
> > >
> > > Unfortunatly this is not documented in the list of changes in the API:
> > > http://www.lua.org/work/doc/manual.html#8.3
> > >
> > > I suggest to add this missing information in Section 8.3 of the manual.
> >
> > Thanks. We will correct that.
> >
> > -- Roberto
>
> My own lua_Alloc function started with code similar to the following:
>
> if ((*counter + nsize - osize) > PGLUA_MEMORYLIMIT) return NULL;
> *counter += nsize - osize;
>
> I realized that due to the new interface I need to make another distinction
> of cases to track memory usage (depending on what osize really means).
> According to my own (personal) taste, it would be nice to have an extra
> argument passed to the lua_Alloc function, instead of (ab)using osize for
> that. Old code may be broken anyway due to the subtle changes, which have
> been already introduced.
I rethought my last posting. Maybe it'd be a bad idea to add an extra
argument, as writing something like if (!ptr) osize = 0; is not a big deal
when implementing an allocation function.
Jan Behrens