21
21
MDSectionOffset originalOffset = offset;
22
22
auto nameOffset = metadata->getOffset (offset);
23
23
offset += sizeof (MDSectionOffset);
24
+ auto runtimeNameOffset = metadata->getOffset (offset);
25
+ offset += sizeof (MDSectionOffset);
24
26
bool hasProtocols = (nameOffset & mdSectionOffsetNext) != 0 ;
25
27
nameOffset &= ~mdSectionOffsetNext;
26
28
auto name = metadata->resolveString (nameOffset);
27
-
29
+ auto runtimeName = name;
30
+ if (runtimeNameOffset != MD_SECTION_OFFSET_NULL) {
31
+ runtimeName = metadata->resolveString (runtimeNameOffset);
32
+ }
28
33
while (hasProtocols) {
29
34
auto protocolOffset = metadata->getOffset (offset);
30
35
offset += sizeof (MDSectionOffset);
56
61
}
57
62
}
58
63
59
- auto nativeClass = objc_getClass (name );
64
+ auto nativeClass = objc_getClass (runtimeName );
60
65
if (nativeClass != nil ) {
61
66
mdClassesByPointer[nativeClass] = originalOffset;
62
67
}
@@ -406,9 +411,16 @@ napi_value toJS(napi_env env) {
406
411
} else {
407
412
auto nameOffset = bridgeState->metadata ->getOffset (offset);
408
413
offset += sizeof (MDSectionOffset);
414
+ auto runtimeNameOffset = bridgeState->metadata ->getOffset (offset);
415
+ offset += sizeof (MDSectionOffset);
409
416
bool hasProtocols = (nameOffset & mdSectionOffsetNext) != 0 ;
410
417
nameOffset &= ~mdSectionOffsetNext;
411
418
name = bridgeState->metadata ->resolveString (nameOffset);
419
+ const char * runtimeName = name.c_str ();
420
+ if (runtimeNameOffset != MD_SECTION_OFFSET_NULL) {
421
+ runtimeName = bridgeState->metadata ->resolveString (runtimeNameOffset);
422
+ }
423
+ nativeClass = objc_getClass (runtimeName);
412
424
while (hasProtocols) {
413
425
auto protocolOffset = bridgeState->metadata ->getOffset (offset);
414
426
offset += sizeof (MDSectionOffset);
@@ -420,7 +432,6 @@ napi_value toJS(napi_env env) {
420
432
hasMembers = (superClassOffset & mdSectionOffsetNext) != 0 ;
421
433
superClassOffset &= ~mdSectionOffsetNext;
422
434
offset += sizeof (MDSectionOffset);
423
- nativeClass = objc_getClass (name.c_str ());
424
435
}
425
436
426
437
napi_value constructor, prototype;
0 commit comments