Skip to content

Commit 75027df

Browse files
committed
fix nested protocols
1 parent b70ed44 commit 75027df

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

NativeScript/ffi/Class.mm

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,13 @@ napi_value toJS(napi_env env) {
390390
// extended by a JS class.
391391
// Every Bridged Class extends the NativeObject class.
392392

393+
void defineProtocolMembers(napi_env env, ObjCClassMemberMap& members, napi_value constructor, ObjCProtocol* protocol) {
394+
ObjCClassMember::defineMembers(env, members, protocol->membersOffset, constructor);
395+
for (auto protocol : protocol->protocols) {
396+
defineProtocolMembers(env, members, constructor, protocol);
397+
}
398+
}
399+
393400
ObjCClass::ObjCClass(napi_env env, MDSectionOffset offset) {
394401
NAPI_PREAMBLE
395402

@@ -455,7 +462,7 @@ napi_value toJS(napi_env env) {
455462
auto protocol =
456463
bridgeState->getProtocol(env, protocolOffset + bridgeState->metadata->protocolsOffset);
457464
if (protocol == nil) continue;
458-
ObjCClassMember::defineMembers(env, members, protocol->membersOffset, constructor);
465+
defineProtocolMembers(env, members, constructor, protocol);
459466
}
460467

461468
if (superClassOffset != MD_SECTION_OFFSET_NULL) {

0 commit comments

Comments
 (0)