diff vendor/symfony/http-kernel/DataCollector/DataCollector.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 1fec387a4317
children af1871eacc83
line wrap: on
line diff
--- a/vendor/symfony/http-kernel/DataCollector/DataCollector.php	Tue Jul 10 15:07:59 2018 +0100
+++ b/vendor/symfony/http-kernel/DataCollector/DataCollector.php	Thu Feb 28 13:21:36 2019 +0000
@@ -28,7 +28,7 @@
  */
 abstract class DataCollector implements DataCollectorInterface, \Serializable
 {
-    protected $data = array();
+    protected $data = [];
 
     /**
      * @var ValueExporter
@@ -40,14 +40,23 @@
      */
     private $cloner;
 
+    /**
+     * @internal
+     */
     public function serialize()
     {
-        return serialize($this->data);
+        $trace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2);
+        $isCalledFromOverridingMethod = isset($trace[1]['function'], $trace[1]['object']) && 'serialize' === $trace[1]['function'] && $this === $trace[1]['object'];
+
+        return $isCalledFromOverridingMethod ? $this->data : serialize($this->data);
     }
 
+    /**
+     * @internal
+     */
     public function unserialize($data)
     {
-        $this->data = unserialize($data);
+        $this->data = \is_array($data) ? $data : unserialize($data);
     }
 
     /**
@@ -111,11 +120,11 @@
      */
     protected function getCasters()
     {
-        return array(
+        return [
             '*' => function ($v, array $a, Stub $s, $isNested) {
                 if (!$v instanceof Stub) {
                     foreach ($a as $k => $v) {
-                        if (is_object($v) && !$v instanceof \DateTimeInterface && !$v instanceof Stub) {
+                        if (\is_object($v) && !$v instanceof \DateTimeInterface && !$v instanceof Stub) {
                             $a[$k] = new CutStub($v);
                         }
                     }
@@ -123,6 +132,6 @@
 
                 return $a;
             },
-        );
+        ];
     }
 }