[SLOF] [PATCH] instance: Fix set-my-args for empty arguments
Segher Boessenkool
segher at kernel.crashing.org
Thu Jun 9 02:36:23 AEST 2016
On Wed, Jun 08, 2016 at 06:02:54PM +0200, Thomas Huth wrote:
> > diff --git a/slof/fs/instance.fs b/slof/fs/instance.fs
> > index 9e5c921..225a2bf 100644
> > --- a/slof/fs/instance.fs
> > +++ b/slof/fs/instance.fs
> > @@ -134,7 +134,7 @@ CONSTANT <instancevariable>
> > 2dup my-self instance>args 2! \ | write into instance struct ( old-addr len new-addr )
> > swap move \ | and copy the args ( )
> > ELSE \ ELSE ( old-addr len )
> > - my-self instance>args 2! \ | set new args to zero, too ( )
> > + swap my-self instance>args 2! \ | set new args to zero, too ( )
> > THEN \ FI
> > ;
>
> You're right, the old code stored the address and length in the wrong
> order into instance>args and instance>args-len. However, the code likely
> simply expected to write zeros to both fields instead, so maybe it is
> better to do this instead:
>
> nip 0 my-self instance>args 2!
>
> ... that way you'd make sure that instance>args never contains a bogus
> pointer if instance>args-len is 0.
Why treat a length of zero special at all? alloc-mem already knows how
to handle it (it returns 0 for the address).
Segher
More information about the SLOF
mailing list