You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2014/02/15 10:44:34 UTC

svn commit: r1568599 - /subversion/trunk/subversion/libsvn_subr/cache-membuffer.c

Author: stefan2
Date: Sat Feb 15 09:44:34 2014
New Revision: 1568599

URL: http://svn.apache.org/r1568599
Log:
In the membuffer cache code, fix the L1->L2 promotion / eviction heuristics
for high hit count entries.  This is an efficiency not a correctness fix.

* subversion/libsvn_subr/cache-membuffer.c
  (ensure_data_insertable_l2): Make sure we use the full 64 bits of the
                               32x32 bit multiplications.

Modified:
    subversion/trunk/subversion/libsvn_subr/cache-membuffer.c

Modified: subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cache-membuffer.c?rev=1568599&r1=1568598&r2=1568599&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/cache-membuffer.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cache-membuffer.c Sat Feb 15 09:44:34 2014
@@ -1449,10 +1449,10 @@ ensure_data_insertable_l2(svn_membuffer_
                * or is smaller than the one to insert - both relative to
                * their respective priority.
                */
-              keep = to_fit_in->hit_count * to_fit_in->priority
-                   < entry->hit_count * entry->priority
-                  || to_fit_in->size * to_fit_in->priority
-                   < entry->size * entry->priority;
+              keep = (apr_uint64_t)to_fit_in->hit_count * to_fit_in->priority
+                   < (apr_uint64_t)entry->hit_count * entry->priority
+                  || (apr_uint64_t)to_fit_in->size * to_fit_in->priority
+                   < (apr_uint64_t)entry->size * entry->priority;
             }
           else if (cache->hit_count > cache->used_entries)
             {