Fix panics from self-referential amf3 objects #67
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes some instances of the "failed to get object" panic in ruffle by no longer trying to handle value cycles
Now all object values are tagged with an ObjectId and the new Value::Amf3ObjectReference's refer back to this so consumers can choose how to handle cycles (e.g. in Ruffles case, via the GC)
Also moves raw-amf/byteobject tests into their own dir as they aren't part of the minerva tests and changed them from .sol -> .amf because they aren't lso files. Adds a test for amf3 cycles and improves the lso-to-json tool to support bulk-test json recreation and generating raw-amf tests
This fixes the following (requires a Ruffle patch as well):
ruffle-rs/ruffle#17902 - loads
ruffle-rs/ruffle#17782 - doesn't panic on load, avm2 error due to null object
ruffle-rs/ruffle#17709 - loads
ruffle-rs/ruffle#17336 - no swf to test, but probably a dupe of ruffle-rs/ruffle#17782
ruffle-rs/ruffle#14329 - doesn't panic on load, avm2 error due to null object
ruffle-rs/ruffle#13748 - loads
ruffle-rs/ruffle#10174 - doesn't panic on load, avm2 error due to null object
ruffle-rs/ruffle#10520 - loads