Skip to content

Commit 15f7e06

Browse files
committed
Bugfix for object accessor setters
When supplying null, it resulted in an error
1 parent 2f2a63a commit 15f7e06

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/PE/Nodes/EncoderNodeVariable.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ public function getPostNodeGetter() {
233233
* @return ObjectSetter
234234
*/
235235
public function objectSetter(ObjectSetter $setter = null) {
236-
$setter->setVariable($this);
236+
if ($setter) $setter->setVariable($this);
237237
$this->objectSetter = $setter;
238238
return $setter;
239239
}
@@ -259,7 +259,7 @@ public function getObjectSetter() {
259259
* @return ObjectGetter
260260
*/
261261
public function objectGetter(ObjectGetter $getter = null) {
262-
$getter->setVariable($this);
262+
if ($getter) $getter->setVariable($this);
263263
$this->objectGetter = $getter;
264264
return $getter;
265265
}

tests/PE/Tests/Nodes/EncoderNodeVariableTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ public function testObjectSetter() {
130130
$this->assertEquals($objectSetter, $variable->getObjectSetter());
131131
$this->assertTrue($variable->hasObjectSetter());
132132
$this->assertEquals($variable, $objectSetter->getVariable());
133+
134+
// disable the object setter
135+
$variable->objectSetter(null);
136+
$this->assertNull($variable->getObjectSetter());
133137
}
134138

135139
public function testObjectGetter() {
@@ -141,5 +145,9 @@ public function testObjectGetter() {
141145
$this->assertEquals($objectGetter, $variable->getObjectGetter());
142146
$this->assertTrue($variable->hasObjectGetter());
143147
$this->assertEquals($variable, $objectGetter->getVariable());
148+
149+
// disable the object setter
150+
$variable->objectGetter(null);
151+
$this->assertNull($variable->getObjectGetter());
144152
}
145153
}

0 commit comments

Comments
 (0)