Browse Source

properly handle releasing memory

master
wes 7 years ago
parent
commit
8f9c16751d
  1. BIN
      .bfilter.c.swo
  2. BIN
      .bfilter.h.swo
  3. BIN
      .bfilter.py.swo
  4. 4
      Makefile
  5. 1
      bfilter.c
  6. BIN
      bfilter.o
  7. 4
      bfilter.py
  8. BIN
      bfilter.so

BIN
.bfilter.c.swo

Binary file not shown.

BIN
.bfilter.h.swo

Binary file not shown.

BIN
.bfilter.py.swo

Binary file not shown.

4
Makefile

@ -1,6 +1,6 @@
default: bfilter.c bfilter.h
$(CC) -g -Wall -Wextra -std=gnu99 -Wpointer-arith -Wmissing-prototypes -lfnv -lm -L. -O0 ./bfilter.c -o test -Wl,-rpath,/home/wes/bfilter;
$(CC) -g -Wall -Wextra -std=gnu99 -Wpointer-arith -Wmissing-prototypes -lfnv -lm -L. -O3 ./bfilter.c -o test -Wl,-rpath,/home/wes/bfilter;
lib: bfilter.c bfilter.h
$(CC) -g -DLIB -c -fpic -Wall -Wextra -pedantic -Wpointer-arith -Werror -std=c99 -lfnv -lm -L. -O0 ./bfilter.c -Wl,-rpath,/home/wes/bfilter;
$(CC) -g -DLIB -c -fpic -Wall -Wextra -pedantic -Wpointer-arith -Werror -std=c99 -lfnv -lm -L. -O3 ./bfilter.c -Wl,-rpath,/home/wes/bfilter;
$(CC) -shared -o bfilter.so bfilter.o;

1
bfilter.c

@ -186,6 +186,7 @@ bfilter_get(bit_array_t *filter,
int
release_bfilter(bit_array_t *filter) {
printf("Releasing bloom filter\n");
free(filter->arr);
free(filter);
return 0;

BIN
bfilter.o

Binary file not shown.

4
bfilter.py

@ -44,6 +44,8 @@ int bfilter_set(bit_array_t *, const char*, int);
int bfilter_get(bit_array_t *, const char*, int);
int getbit(bit_array_t *, int);
int release_bfilter(bit_array_t *);
""")
class BloomFilter:
@ -51,7 +53,7 @@ class BloomFilter:
self.m = m
self.k = k
self.bitset = lib.empty_bfilter(m)
self.bitset = ffi.gc(lib.empty_bfilter(m), lib.release_bfilter)
def add(self, key):
lib.bfilter_set(self.bitset, key.encode("UTF-8"), self.k)

BIN
bfilter.so

Binary file not shown.
Loading…
Cancel
Save