diff --git a/modules/juce_core/native/juce_mac_ObjCHelpers.h b/modules/juce_core/native/juce_mac_ObjCHelpers.h index 1e199453b8..fd91a6a7a1 100644 --- a/modules/juce_core/native/juce_mac_ObjCHelpers.h +++ b/modules/juce_core/native/juce_mac_ObjCHelpers.h @@ -230,7 +230,7 @@ NSRect makeNSRect (const RectangleType& r) noexcept #endif template -static ReturnType ObjCMsgSendSuper (id self, SEL sel, Params... params) +inline ReturnType ObjCMsgSendSuper (id self, SEL sel, Params... params) { using SuperFn = ReturnType (*) (struct objc_super*, SEL, Params...); const auto fn = reinterpret_cast (MetaSuperFn::value); @@ -253,6 +253,14 @@ template using NSUniquePtr = std::unique_ptr; //============================================================================== +template +inline Type getIvar (id self, const char* name) +{ + void* v = nullptr; + object_getInstanceVariable (self, name, &v); + return static_cast (v); +} + template struct ObjCClass { @@ -323,14 +331,6 @@ struct ObjCClass return ObjCMsgSendSuper (self, sel, params...); } - template - static Type getIvar (id self, const char* name) - { - void* v = nullptr; - object_getInstanceVariable (self, name, &v); - return static_cast (v); - } - Class cls; private: @@ -402,7 +402,7 @@ NSObject* createNSObjectFromJuceClass (Class* obj) template Class* getJuceClassFromNSObject (NSObject* obj) { - return obj != nullptr ? ObjCLifetimeManagedClass:: template getIvar (obj, "cppObject") : nullptr; + return obj != nullptr ? getIvar (obj, "cppObject") : nullptr; } template diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm index 839584d187..f6bcb31d26 100644 --- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm @@ -1703,7 +1703,7 @@ struct NSViewComponentPeerWrapper : public Base static NSViewComponentPeer* getOwner (id self) { - return Base::template getIvar (self, "owner"); + return getIvar (self, "owner"); } static id getAccessibleChild (id self)