From 5a76e8be5da09bc1262f977a306424adf00b5983 Mon Sep 17 00:00:00 2001 From: ryan Date: Tue, 13 Apr 2010 12:43:40 +0000 Subject: [PATCH] Cache fixes for get_blog_details() git-svn-id: http://svn.automattic.com/wordpress/trunk@14076 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/ms-blogs.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/wp-includes/ms-blogs.php b/wp-includes/ms-blogs.php index 3aac31173..66e84f72d 100644 --- a/wp-includes/ms-blogs.php +++ b/wp-includes/ms-blogs.php @@ -125,13 +125,16 @@ function get_blog_details( $fields, $get_all = true ) { if ( $details ) { if ( ! is_object( $details ) ) { - if ( $details == -1 ) + if ( $details == -1 ) { return false; - else + } else { // Clear old pre-serialized objects. Cache clients do better with that. wp_cache_delete( $blog_id . $all, 'blog-details' ); + unset($details); + } + } else { + return $details; } - return $details; } // Try the other cache. @@ -142,18 +145,21 @@ function get_blog_details( $fields, $get_all = true ) { // If short was requested and full cache is set, we can return. if ( $details ) { if ( ! is_object( $details ) ) { - if ( $details == -1 ) + if ( $details == -1 ) { return false; - else + } else { // Clear old pre-serialized objects. Cache clients do better with that. - wp_cache_delete( $blog_id . $all, 'blog-details' ); + wp_cache_delete( $blog_id, 'blog-details' ); + unset($details); + } + } else { + return $details; } - return $details; } } - if ( !$details ) { - $details = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE blog_id = %d", $blog_id ) ); + if ( empty($details) ) { + $details = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE blog_id = %d /* get_blog_details */", $blog_id ) ); if ( ! $details ) { // Set the full cache. wp_cache_set( $blog_id, -1, 'blog-details' );