From 4d6fa1d8903710f95fed559d83fbb4919ab9d3b0 Mon Sep 17 00:00:00 2001 From: Lightmann Date: Sun, 25 Dec 2022 17:57:57 -0500 Subject: [PATCH 1/2] Add fallback condition when adding a protocol to a subclass --- bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm | 2 +- bin/lib/Logos/Generator/internal/Subclass.pm | 2 +- bin/lib/Logos/Generator/libhooker/Subclass.pm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm b/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm index 75a04ca..8e95641 100644 --- a/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm +++ b/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm @@ -23,7 +23,7 @@ sub initializers { } # foreach(keys %{$class->protocols}) { - $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\")); "; + $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ? objc_getProtocol(\"$_\") : \@protocol($_)); "; } $return .= "}"; return $return; diff --git a/bin/lib/Logos/Generator/internal/Subclass.pm b/bin/lib/Logos/Generator/internal/Subclass.pm index 63042f6..4ab6e90 100644 --- a/bin/lib/Logos/Generator/internal/Subclass.pm +++ b/bin/lib/Logos/Generator/internal/Subclass.pm @@ -24,7 +24,7 @@ sub initializers { # $return .= "objc_registerClassPair(".$self->variable($class)."); "; foreach(keys %{$class->protocols}) { - $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\")); "; + $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ? objc_getProtocol(\"$_\") : \@protocol($_)); "; } $return .= "}"; return $return; diff --git a/bin/lib/Logos/Generator/libhooker/Subclass.pm b/bin/lib/Logos/Generator/libhooker/Subclass.pm index 9fd9fe3..e8d20d0 100644 --- a/bin/lib/Logos/Generator/libhooker/Subclass.pm +++ b/bin/lib/Logos/Generator/libhooker/Subclass.pm @@ -23,7 +23,7 @@ sub initializers { } # foreach(keys %{$class->protocols}) { - $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\")); "; + $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ? objc_getProtocol(\"$_\") : \@protocol($_)); "; } $return .= "}"; return $return; From 376257b5f7b0b287c62412256c493addc99037ed Mon Sep 17 00:00:00 2001 From: Lightmann Date: Mon, 26 Dec 2022 11:06:49 -0500 Subject: [PATCH 2/2] ~ elvis ~ --- bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm | 2 +- bin/lib/Logos/Generator/internal/Subclass.pm | 2 +- bin/lib/Logos/Generator/libhooker/Subclass.pm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm b/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm index 8e95641..f89aa0a 100644 --- a/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm +++ b/bin/lib/Logos/Generator/MobileSubstrate/Subclass.pm @@ -23,7 +23,7 @@ sub initializers { } # foreach(keys %{$class->protocols}) { - $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ? objc_getProtocol(\"$_\") : \@protocol($_)); "; + $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ?: \@protocol($_)); "; } $return .= "}"; return $return; diff --git a/bin/lib/Logos/Generator/internal/Subclass.pm b/bin/lib/Logos/Generator/internal/Subclass.pm index 4ab6e90..ae5fd71 100644 --- a/bin/lib/Logos/Generator/internal/Subclass.pm +++ b/bin/lib/Logos/Generator/internal/Subclass.pm @@ -24,7 +24,7 @@ sub initializers { # $return .= "objc_registerClassPair(".$self->variable($class)."); "; foreach(keys %{$class->protocols}) { - $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ? objc_getProtocol(\"$_\") : \@protocol($_)); "; + $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ?: \@protocol($_)); "; } $return .= "}"; return $return; diff --git a/bin/lib/Logos/Generator/libhooker/Subclass.pm b/bin/lib/Logos/Generator/libhooker/Subclass.pm index e8d20d0..913de83 100644 --- a/bin/lib/Logos/Generator/libhooker/Subclass.pm +++ b/bin/lib/Logos/Generator/libhooker/Subclass.pm @@ -23,7 +23,7 @@ sub initializers { } # foreach(keys %{$class->protocols}) { - $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ? objc_getProtocol(\"$_\") : \@protocol($_)); "; + $return .= "class_addProtocol(".$self->variable($class).", objc_getProtocol(\"$_\") ?: \@protocol($_)); "; } $return .= "}"; return $return;