Przeglądaj źródła

Correct and simplify buf_shrink logic

svn:r4167
Nick Mathewson 21 lat temu
rodzic
commit
ad547cbb8c
1 zmienionych plików z 4 dodań i 4 usunięć
  1. 4 4
      src/or/buffers.c

+ 4 - 4
src/or/buffers.c

@@ -249,13 +249,13 @@ buf_shrink(buf_t *buf)
 {
 {
   size_t new_len;
   size_t new_len;
 
 
-  if (buf->highwater >= (buf->len<<2) && buf->len > MIN_LAZY_SHRINK_SIZE*2)
-    return;
-
-  new_len = (buf->len>>1);
+  new_len = buf->len;
   while (buf->highwater < (new_len>>2) && new_len > MIN_LAZY_SHRINK_SIZE*2)
   while (buf->highwater < (new_len>>2) && new_len > MIN_LAZY_SHRINK_SIZE*2)
     new_len >>= 1;
     new_len >>= 1;
 
 
+  if (new_len == buf->len)
+    return;
+
   log_fn(LOG_DEBUG,"Shrinking buffer from %d to %d bytes.",
   log_fn(LOG_DEBUG,"Shrinking buffer from %d to %d bytes.",
          (int)buf->len, (int)new_len);
          (int)buf->len, (int)new_len);
   buf_resize(buf, new_len);
   buf_resize(buf, new_len);