fusion: Explicitly check for -1 for a missing table
James Hawkins
truiken at gmail.com
Wed Apr 16 12:08:05 CDT 2008
On Wed, Apr 16, 2008 at 11:51 AM, Marcus Meissner <meissner at suse.de> wrote:
>
> On Wed, Apr 16, 2008 at 11:48:31AM -0500, James Hawkins wrote:
> > Hi,
> >
> > Changelog:
> > * Explicitly check for -1 for a missing table.
> >
> > dlls/fusion/assembly.c | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > --
> > James Hawkins
>
> > diff --git a/dlls/fusion/assembly.c b/dlls/fusion/assembly.c
> > index 024e611..eee889a 100644
> > --- a/dlls/fusion/assembly.c
> > +++ b/dlls/fusion/assembly.c
> > @@ -416,7 +416,7 @@ HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name)
> > ULONG offset;
> >
> > offset = assembly->tables[0x20].offset; /* FIXME: add constants */
> > - if (offset < 0)
> > + if (offset == -1)
> > return E_FAIL;
> >
> > asmtbl = (ASSEMBLYTABLE *)assembly_data_offset(assembly, offset);
> > @@ -527,7 +527,7 @@ HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPSTR *token)
> > *token = NULL;
> >
> > offset = assembly->tables[0x20].offset; /* FIXME: add constants */
> > - if (offset < 0)
> > + if (offset == -1)
> > return E_FAIL;
>
> You should make offset "signed", or pass errors down in another way.
> This will not work this way.
>
It works just fine. -1 is 4294967295 in ULONG (32bit), which is
exactly the same as offset on error (because we assigned it -1, but
the representation in memory is the same). We do this several other
places in the code base.
--
James Hawkins
More information about the wine-devel
mailing list