From af72255fe9387fcec2ebd4fd7a88bee7612aa6f7 Mon Sep 17 00:00:00 2001 From: Jordan DeLong Date: Thu, 21 May 2015 16:44:26 -0700 Subject: [PATCH] Allow vtable-style dispatch of abstract static methods Summary: I left this out because of a weird measurement in perflab (see D1366913), but apparently at the time got a clean run that doubled Func* lookup for abstract static methods between vtable-style dispatch and LdObjMethod and asserted they were the same Func*, without problems, so I'm a little surprised I thought "more testing" was still needed to enable it. Reviewed By: @ottoni Differential Revision: D2093908 --- hphp/runtime/vm/jit/irgen-call.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/hphp/runtime/vm/jit/irgen-call.cpp b/hphp/runtime/vm/jit/irgen-call.cpp index b44732cedbf6a7..a82bc3c3e6f2d7 100644 --- a/hphp/runtime/vm/jit/irgen-call.cpp +++ b/hphp/runtime/vm/jit/irgen-call.cpp @@ -174,13 +174,7 @@ void fpushObjMethodCommon(IRGS& env, g_context->lookupObjMethod(func, baseClass, methodName, curClass(env), false); if (res == LookupResult::MethodFoundWithThis || - /* - * TODO(#4455926): We don't allow vtable-style dispatch of - * abstract static methods, but not for any real reason - * here. It should be able to work, but needs further - * testing to be enabled. - */ - (res == LookupResult::MethodFoundNoThis && !func->isAbstract())) { + res == LookupResult::MethodFoundNoThis) { /* * If we found the func in baseClass, then either: * a) its private, and this is always going to be the