diff options
| author | Mark Rowe <mrowe@bdash.net.nz> | 2025-05-07 18:22:50 -0700 |
|---|---|---|
| committer | kat <kat@vector35.com> | 2025-05-29 09:42:11 -0400 |
| commit | 4ea37e18bfed8de162dfb816971417a0679b602f (patch) | |
| tree | 899c8f86701c7a8e2359c84d73e9c2ba2759c540 /python/undo.py | |
| parent | c55c604031e0d04a44c39832f5887e2d9aa7314e (diff) | |
Implement a Pseudo Objective-C language representation
This is implemented in the Pseudo C plug-in as it shares 99% of the
logic. The Objective-C support is implemented in a subclass of
`PseudoCFunction`. The handling of instruction types that the
Objective-C representation needs to customize is extracted into virtual
functions that the Objective-C subclass overrides.
This currently supports:
* Rewriting `objc_msgSend` / `objc_msgSendSuper2` with constant
selectors to `[receiver message]` notation.
* Rewriting calls to `objc_alloc` / `objc_alloc_init` / `objc_new` to
the equivalent message send notation.
* Rewriting `objc_retain` / `objc_release` and friends to the
equivalent message send notation.
* Displaying Objective-C class references as their class names rather
than `_OBJC_CLASS_$_` symbol names.
* Displaying Objective-C string literals as `@"..."`.
This works best when used in conjunction with
https://github.com/bdash/bn-objc-extras as the reference counting runtime
calls add so much clutter.
Diffstat (limited to 'python/undo.py')
0 files changed, 0 insertions, 0 deletions
