summaryrefslogtreecommitdiffstats
path: root/3rdparty/Sabre/VObject/Component.php
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/Sabre/VObject/Component.php')
-rw-r--r--3rdparty/Sabre/VObject/Component.php13
1 files changed, 10 insertions, 3 deletions
diff --git a/3rdparty/Sabre/VObject/Component.php b/3rdparty/Sabre/VObject/Component.php
index 3d5a3d75635..47cf9f3d812 100644
--- a/3rdparty/Sabre/VObject/Component.php
+++ b/3rdparty/Sabre/VObject/Component.php
@@ -83,13 +83,16 @@ class Sabre_VObject_Component extends Sabre_VObject_Element {
if (!is_null($itemValue)) {
throw new InvalidArgumentException('The second argument must not be specified, when passing a VObject');
}
+ $item->parent = $this;
$this->children[] = $item;
} elseif(is_string($item)) {
if (!is_scalar($itemValue)) {
throw new InvalidArgumentException('The second argument must be scalar');
}
- $this->children[] = new Sabre_VObject_Property($item,$itemValue);
+ $item = new Sabre_VObject_Property($item,$itemValue);
+ $item->parent = $this;
+ $this->children[] = $item;
} else {
@@ -208,16 +211,19 @@ class Sabre_VObject_Component extends Sabre_VObject_Element {
$overWrite = count($matches)?key($matches):null;
if ($value instanceof Sabre_VObject_Component || $value instanceof Sabre_VObject_Property) {
+ $value->parent = $this;
if (!is_null($overWrite)) {
$this->children[$overWrite] = $value;
} else {
$this->children[] = $value;
}
} elseif (is_scalar($value)) {
+ $property = new Sabre_VObject_Property($name,$value);
+ $property->parent = $this;
if (!is_null($overWrite)) {
- $this->children[$overWrite] = new Sabre_VObject_Property($name,$value);
+ $this->children[$overWrite] = $property;
} else {
- $this->children[] = new Sabre_VObject_Property($name,$value);
+ $this->children[] = $property;
}
} else {
throw new InvalidArgumentException('You must pass a Sabre_VObject_Component, Sabre_VObject_Property or scalar type');
@@ -237,6 +243,7 @@ class Sabre_VObject_Component extends Sabre_VObject_Element {
foreach($matches as $k=>$child) {
unset($this->children[$k]);
+ $child->parent = null;
}