Skip to content

Commit 9a2d01f

Browse files
committed
Optimize memoization
1 parent 553a27c commit 9a2d01f

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

demo/auto/AutoValue_Address.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,7 @@ public function foo()
108108

109109
public function linesString(): string
110110
{
111-
if (!isset($this->__memoized['linesString'])) {
112-
$this->__memoized['linesString'] = parent::linesString();
113-
}
114-
return $this->__memoized['linesString'];
111+
return $this->__memoized['linesString'] ?? ($this->__memoized['linesString'] = parent::linesString());
115112
}
116113

117114
/**

src/Memoize/MemoizeMethodProcessor.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,7 @@ function (MethodDefinitionCollection $methodDefinitions, ReflectionMethod $metho
4242
THEPHP;
4343
} else {
4444
$methodBody = <<<THEPHP
45-
if (!isset(\$this->__memoized['$methodName'])) {
46-
\$this->__memoized['$methodName'] = parent::$methodName();
47-
}
48-
return \$this->__memoized['$methodName'];
45+
return \$this->__memoized['$methodName'] ?? (\$this->__memoized['$methodName'] = parent::$methodName());
4946
THEPHP;
5047
}
5148
return $methodDefinitions->withAdditionalMethodDefinition(MethodDefinition::of($method, $methodBody));

0 commit comments

Comments
 (0)