TÖRÖK Attila
a1ee508ff8
chore: Fix nightly clippy lint: clippy::if_then_panic ( #5400 )
...
* chore: Fix nightly clippy lint: clippy::if_then_panic
* chore: Fix nightly clippy lint: clippy::if_then_panic in swf tests too
* Address review notes
2021-10-02 16:14:53 +03:00
relrelb
3d8779b377
swf: Ignore length mismatch in `read_action`
...
Flash continues in such case, so just warn instead of failing.
2021-08-03 14:40:59 -07:00
relrelb
04af276ecb
swf: Extract `Opcode::format` and `TagCode::format`
2021-08-03 14:40:59 -07:00
relrelb
d2eb46d3be
chore: Reserve capacity for vectors
...
This avoids unnecessary re-allocations and thus should improve
performance in both memory and time terms.
2021-07-20 16:25:23 -07:00
relrelb
5dde3ecabf
swf: Optimize `read_f64_me` and `write_f64_me`
...
Each function is reduced to just 3 opcodes on x86:
https://godbolt.org/z/n6q6zxnh6
WebAssembly benefits as well: https://godbolt.org/z/fcETE9GYn
This should improve load-time performance because read_f64_me is
used frequently (for each AVM1 double constant).
2021-07-16 01:29:49 +03:00
relrelb
ef9c073d26
swf: General cleanup
...
Just mechanical cleanups to ease future refactors.
2021-07-12 23:09:29 +03:00
relrelb
169c79fa3a
chore: Minor cleanups
2021-06-26 23:05:11 +03:00
relrelb
0fd1c05fd5
chore: Use into() in more places
2021-06-22 11:49:41 -07:00
relrelb
f82faf9603
chore: Appease clippy
2021-06-05 10:16:00 -07:00
Mike Welsh
f173b81e38
swf: Use bitflags for Function flags
2021-05-30 22:14:32 -07:00
CUB3D
d5c2e5559b
avm2: Don't mutably borrow for pos()
2021-04-03 16:37:47 -06:00
Mads Marquart
121ae43d25
swf: Remove unused encoding from avm1::read::Reader
2021-02-27 17:04:42 -08:00
Mads Marquart
66f5c856d7
swf: Make a few functions const
2021-02-27 17:04:42 -08:00
Mads Marquart
24780003e7
swf: Deduplicate different read methods
2021-02-27 17:04:42 -08:00
Mads Marquart
dad21d4398
swf: Make avm2 Reader operate directly with byte slices
2021-02-27 17:04:42 -08:00
Mads Marquart
8eddde76a2
swf: Add safe and simpler string parsing
2021-01-28 14:39:35 -08:00
Mike Welsh
66256dd3be
swf: SwfStr no longer contains encoding
...
SwfStr is now an unsized slice analogous to `str` or `bstr`.
The desired encoding must be supplied when converting to String.
2021-01-20 15:02:31 -08:00
Mike Welsh
700c3c1767
chore: Appease clippy
2021-01-20 15:02:31 -08:00
Mike Welsh
61628a74fc
swf: Rename and organize some util methods
...
* SwfRead -> SwfReadExt
* SwfWrite -> SwfWriteExt
* read_swf_header -> decompress_swf
* read_swf -> parse_swf
2021-01-20 15:02:31 -08:00
Mike Welsh
1d9c11e145
swf: Add SwfStr type to handle encodings in SWF<6
2021-01-20 15:02:31 -08:00
Adrian Wielgosik
484bd2c11a
avm1: Revert #1470 to improve wasm performance
2020-12-17 12:47:22 -08:00
Mike Welsh
0c38dafd0d
avm1: Switch to SmallVec for ActionPush
...
While switching swf to return slices, I noticed ActionPush was
potentially allocating a huge vector by mistake.
Switch to SmallVec<[Value; 4]> to fix this and avoid the
allocation in general (this was fairly high up in the profiler).
TODO: Return an iterator instead of any sort of vec.
2020-11-03 13:47:12 -08:00
David Wendt
95ca978034
f64 constants in ABC files are not stored in Flash mixed-endian.
2020-08-10 16:38:04 -07:00
Nathan Adams
e01f78df61
swf: Fixed parsing of try {...} blocks
2020-07-01 17:30:56 -07:00
David Wendt
93b06483c8
Fix misparsing of `ActionGetURL2`.
...
Adobe's documentation has the flags in opposite order to what they should be. This fixes that.
2020-01-16 17:09:56 -08:00
Mike Welsh
e315fcb6b3
swf: Store register count from DefineFunction2
...
Also update avm1::Function to use register_count.
2019-10-15 17:09:14 -07:00
Mike Welsh
93a221aea4
swf: Add tests for errors on incorrect parse
2019-10-10 00:55:09 -07:00
Mike Welsh
3058b88011
swf: Add custom error type for SWF/AVM1 parse errors
...
Improves the error handling for the swf crate:
* Custom swf::error::Error type added to handle various errors
in SWF parsing.
* Invalid parsing of tags/AVM1 ops results in a Error::ParseError
that can include info about the underlying failure.
* Implement Display for these errors. Output descriptive
names for the tag/opcode when it fails to parse.
* Handle out of bounds reads in avm1::Reader::read_slice.
Previously this would panic, now it returns an io::Error.
Closes #85 .
2019-10-10 00:55:09 -07:00
Mike Welsh
0de44d61b3
Merge swf-rs into ruffle repo
...
git-subtree-dir: swf
git-subtree-mainline: 2740f3ccc1
git-subtree-split: 1b04015326
2019-10-02 17:25:30 -07:00