瀏覽代碼

Merge pull request #40 from ThomasWaldmann/one-memcpy-less

One memcpy less
TW 10 年之前
父節點
當前提交
95744a13dc
共有 1 個文件被更改,包括 2 次插入5 次删除
  1. 2 5
      borg/_chunker.c

+ 2 - 5
borg/_chunker.c

@@ -79,7 +79,7 @@ typedef struct {
     int window_size, chunk_mask, min_size;
     size_t buf_size;
     uint32_t *table;
-    uint8_t *data, *read_buf;
+    uint8_t *data;
     PyObject *fd;
     int fh;
     int done, eof;
@@ -96,7 +96,6 @@ chunker_init(int window_size, int chunk_mask, int min_size, int max_size, uint32
     c->table = buzhash_init_table(seed);
     c->buf_size = max_size;
     c->data = malloc(c->buf_size);
-    c->read_buf = malloc(c->buf_size);
     return c;
 }
 
@@ -122,7 +121,6 @@ chunker_free(Chunker *c)
     Py_XDECREF(c->fd);
     free(c->table);
     free(c->data);
-    free(c->read_buf);
     free(c);
 }
 
@@ -140,9 +138,8 @@ chunker_fill(Chunker *c)
     }
     if(c->fh >= 0) {
         // if we have a os-level file descriptor, use os-level API
-        n = read(c->fh, c->read_buf, n);
+        n = read(c->fh, c->data + c->position + c->remaining, n);
         if(n > 0) {
-            memcpy(c->data + c->position + c->remaining, c->read_buf, n);
             c->remaining += n;
             c->bytes_read += n;
         }