MapCacheLRU: Support null values in getWithSetCallback()
authorKunal Mehta <legoktm@member.fsf.org>
Tue, 13 Sep 2016 04:23:09 +0000 (21:23 -0700)
committerKunal Mehta <legoktm@member.fsf.org>
Tue, 13 Sep 2016 04:45:51 +0000 (21:45 -0700)
The rest of this class supports having a key with a null value by using
array_key_exists() instead of isset(). So Use $this->has() in
getWithSetCallback() so a null value is still identified as set.

Change-Id: Ida74a6f7e284e98f9a7d76d97312ebe2ee343f10

includes/libs/MapCacheLRU.php

index 90c9a75..2f5a454 100644 (file)
@@ -115,8 +115,9 @@ class MapCacheLRU {
         * @return mixed The cached value if found or the result of $callback otherwise
         */
        public function getWithSetCallback( $key, callable $callback ) {
-               $value = $this->get( $key );
-               if ( $value === null ) {
+               if ( $this->has( $key ) ) {
+                       $value = $this->get( $key );
+               } else {
                        $value = call_user_func( $callback );
                        if ( $value !== false ) {
                                $this->set( $key, $value );