summaryrefslogtreecommitdiff
path: root/view/sharedcache/workflow/ObjCActivity.cpp
diff options
context:
space:
mode:
authorMark Rowe <mark@vector35.com>2025-08-25 19:37:04 -0700
committerMark Rowe <mark@vector35.com>2025-08-27 15:19:51 -0700
commit86974363659160a4fa5ff1818e8e1317c74c9a0a (patch)
treee75e9455dc6319129bd53994100efca2f25c8f85 /view/sharedcache/workflow/ObjCActivity.cpp
parent0847156e8754c2ad0b1769a96f4949a7fb28e03f (diff)
[ObjC] Fix parsing method type encoding strings for 32-bit platforms
Incorrect parsing of method type encoding strings was causing incorrect function types to be applied to Objective-C method implementations. In some cases this would result in confusion about which stack locations specific parameters resided at. `q`, `Q` and `d` were being mapped to `NSInteger`, `NSUInteger` and `CGFloat` respectively. While this works for 64-bit platforms, the type aliases refer to 32-bit types on 32-bit platforms. These type encodings are explicitly for 64-bit types. To address this `q`, `Q` and `d` are now mapped to `int64_t`, `uint64_t` and `double` respectively. `l` and `L` were incorrectly being interpreted as `int64_t` and `uint64_t`. While `long` is a 64-bit type on 64-bit Apple platforms, the `l` / `L` type encodings always refer to a 32-bit type. `S` was mistakenly being mapped to `uint8_t`. It is now `uint16_t` as intended.
Diffstat (limited to 'view/sharedcache/workflow/ObjCActivity.cpp')
0 files changed, 0 insertions, 0 deletions