Fix memcache warnings when you try to use ?s2id=XYZ and XYZ does not 
exist.

        Patch by afuna. 

diffs (31 lines):

diff -r 5d69dee7c529 -r 451c8458da72 cgi-bin/LJ/S2.pm
--- a/cgi-bin/LJ/S2.pm  Tue Dec 01 02:03:44 2009 +0000
+++ b/cgi-bin/LJ/S2.pm  Tue Dec 01 02:05:48 2009 +0000
@@ -886,6 +886,9 @@ sub create_style
     my $styleid = $dbh->{'mysql_insertid'};
     return 0 unless $styleid;
 
+    # in case we had an invalid / empty value from before
+    LJ::MemCache::delete([$styleid, "s2s:$styleid"]);
+
     return $styleid;
 }
 
@@ -959,7 +962,7 @@ sub load_style
 
     my $memkey = [$id, "s2s:$id"];
     my $style = LJ::MemCache::get($memkey);
-    unless ($style) {
+    unless ( defined $style ) {
         $db ||= LJ::S2::get_s2_reader()
             or die "Unable to get S2 reader";
         $style = $db->selectrow_hashref("SELECT styleid, userid, name, modtime 
".
@@ -967,7 +970,7 @@ sub load_style
                                         undef, $id);
         die $db->errstr if $db->err;
 
-        LJ::MemCache::add($memkey, $style, 3600);
+        LJ::MemCache::add($memkey, $style || {}, 3600);
     }
     return undef unless $style;
 
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to