Fix the context class for continuations in closures
The late static bound class was being used for the context. This was wrong, but before this change there was no context at all, so it would have taken newly written code to expose the bug. However, a given continuation can be instantiated from a large number of different lsb classes (but only one context class) which meant that we got an explosion of unnecessary translations.
Esse commit está contido em:
@@ -6702,7 +6702,7 @@ VMExecutionContext::createContinuation(ActRec* fp,
|
||||
Class* cls = frameStaticClass(fp);
|
||||
|
||||
if (origFunc->isClosureBody()) {
|
||||
genFunc = genFunc->cloneAndSetClass(cls);
|
||||
genFunc = genFunc->cloneAndSetClass(fp->m_func->cls());
|
||||
}
|
||||
|
||||
if (obj.get()) {
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário