[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
displaced arrays
Can someone tell me if this is a bug (or i am just reading the documentation wrong based on
how i think it should be)?
I am taking messages in "binary" form and parsing off integers and strings. I declare one
array to be of element type 'string-char and to be of a length that allows 4 bytes (string-chars)
per integer and one byte (string-char) per character. This works peachy. In order to
parse the array, i displace an integer array to it using the following code:
(make-array num-ints
:element-type 'integer
:displaced-to binary-msg
:displaced-index-offset start-byte)
For example, if the binary message contains 6 integers followed by a string and i want to parse off
the 3rd integer, num-ints will be 1, start-byte will be 8 (because there are 4 bytes per int).
Well, this doesn't work at all. I assumed that :displaced-index-offset was the index in the primary
array. This code works if i use start-int (in this example, 2), the index into the displaced integer
array.
I know that displacing arrays not of like types is not recommended, so it isn't talked about a whole
lot. Is this the expected behavior? It seems a little (a LITTLE!) odd to me since the length of the
array (in this case 1) is longer than the index (in this case 2) and the index 2 makes no sense in
the first array (it represents the 3rd byte of a 4-byte integer).
Any insight into this matter would be appreciated. The code works but is the source of mental distress.
--robin