Ah, you're right!  Stupid me.  It clearly stated in the error message and I 
missed it.


At 02:00 PM 04/09/2001 -0700, Marshall Clow wrote:
> >What you suggested makes a lot of sense and I think it should work. It 
> still doesn't work for me though, am I doing something else wrong as 
> well? Now I get the following error
> >
> >"application1.0 just read from memory location 0x10024AA7 causing an 
> address error. An address error means that the application accessed a 2 
> 0r 4 byte value at an odd (not even) memory address"
> >
> >I changed my unpack routine to:
> >
> >static void UnpackRange(Range* range, const PackedRange *packedRange)
> >{
> >       const char *s = packedRange->name;
> >
> >       range->name = s;
> >(1)    s += StrLen(s) + 1;
> >(2)    range->startRange = *((Int32*)s);
> >       s = s + 4;
> >       range->endRange = *((Int32*)s);
> >}
>
>Suppose that s starts out at 0x20000.
>Suppose that the first 7 bytes are "Hello!\0"
>After the line marked (1), s will be 0x20007
>the line marked (2) will bomb, because you are reading 4 bytes from an odd 
>address.
>
>You have to read the 4 bytes on at a time, and assemble the long yourself.
>
>         range->startRange  = *s++ & 0x000000FF; range->startRange <<= 8;
>         range->startRange |= *s++ & 0x000000FF; range->startRange <<= 8;
>         range->startRange |= *s++ & 0x000000FF; range->startRange <<= 8;
>         range->startRange |= *s++ & 0x000000FF;
>
>
>--
>-- Marshall
>
>Marshall Clow     Idio Software   <mailto:[EMAIL PROTECTED]>
>Hey! Who messed with my anti-paranoia shot?
>
>--
>For information on using the Palm Developer Forums, or to unsubscribe, 
>please see http://www.palmos.com/dev/tech/support/forums/


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to