protected function &mapPointers(&$value)
{
if ($value instanceof static) {
$pointer =& $value->getClosurePointer();
return $pointer;
} elseif ($value instanceof SelfReference) {
$pointer =& static::$deserialized[$value->hash];
return $pointer;
} elseif (is_array($value)) {
$pointer = array_map(array($this, __FUNCTION__), $value);
return $pointer;
} elseif ($value instanceof \stdClass) {
$pointer = (array) $value;
$pointer = array_map(array($this, __FUNCTION__), $pointer);
$pointer = (object) $pointer;
return $pointer;
}
return $value;
}