From 21efe9e25920bdb7210f1b7944a4b6be150f1e71 Mon Sep 17 00:00:00 2001 From: David Chisnall Date: Tue, 23 May 2017 09:24:44 +0100 Subject: [PATCH] Update dtables for metaclasses when exchanging methods. Fixes #32 --- runtime.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/runtime.c b/runtime.c index 27a8725..c7e7c62 100644 --- a/runtime.c +++ b/runtime.c @@ -104,6 +104,12 @@ static void objc_updateDtableForClassContainingMethod(Method m) objc_update_dtable_for_class(nextClass); return; } + Class meta = object_getClass((id)nextClass); + if (class_getInstanceMethodNonrecursive(meta, sel) == m) + { + objc_update_dtable_for_class(meta); + return; + } } }