Skip to content

Commit

Permalink
Allow vtable-style dispatch of abstract static methods
Browse files Browse the repository at this point in the history
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
  • Loading branch information
jdelong authored and hhvm-bot committed May 27, 2015
1 parent a3e1779 commit af72255
Showing 1 changed file with 1 addition and 7 deletions.
8 changes: 1 addition & 7 deletions hphp/runtime/vm/jit/irgen-call.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit af72255

Please sign in to comment.