spill the inputs of CreateCl onto the stack
I did this for the IR but didn't do it for the JIT :(
Esse commit está contido em:
@@ -9249,6 +9249,10 @@ TranslatorX64::translateCreateCl(const Tracelet& t,
|
||||
R(clsCache),
|
||||
IMM(uintptr_t(clsName)));
|
||||
|
||||
for (auto& input : i.inputs) {
|
||||
m_regMap.cleanLoc(input->location);
|
||||
}
|
||||
|
||||
EMIT_RCALL(a, i,
|
||||
getMethodPtr(&c_Closure::init),
|
||||
R(rax),
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
class A {}
|
||||
|
||||
function a() {
|
||||
$b = new A;
|
||||
$c = function() use ($b) {
|
||||
return $b;
|
||||
};
|
||||
return $c();
|
||||
}
|
||||
|
||||
var_dump(a());
|
||||
@@ -0,0 +1,2 @@
|
||||
object(A)#1 (0) {
|
||||
}
|
||||
Referência em uma Nova Issue
Bloquear um usuário