| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Arrays were given a handle but were never stored, so a reference to an array could not be resolved. A reference found in an array field was also read as a class description instead of the array itself. Class descriptions are now stored before their annotations, as v3 already does. Fixes #62. Signed-off-by: Thomas Calmant <thomas.calmant@gmail.com>
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Summary
Three problems prevented v2 from reading a stream where the same array is
stored in two fields:
reference to that array failed with Invalid reference handle. This is
what the handles "spaced out by 2" in the report come from: the numbers
were given to the arrays, but nothing was kept for them.
_do_classdesc(), which requires a class description and rejected the
array with Referenced object is not a class description.
super class had been read, so nothing read in between could refer to them.
They are now stored as soon as they are created, as v3 already does.
The first two are what the reported file hits; the last one is the same kind
of problem, found while comparing with v3, and is fixed for consistency.
With those, v2 reads the 2.2 MB session attached to the issue completely.
Test plan
documenting how it is built: a byte array and a string array, each stored
in two fields, followed by an int field which detects a desynchronized
stream.
(Invalid reference handle: 7e0005) and passes after it.
values, that the two fields give the very same array, and the field
written after them.
Fixes #62