Sorting a memory leak in datastore/journalstore
This commit is contained in:
parent
9fd44b7878
commit
ebb94d96cb
3 changed files with 8 additions and 4 deletions
|
@ -41,7 +41,7 @@ int libp2p_datastore_new(struct Datastore** datastore) {
|
||||||
if (*datastore == NULL)
|
if (*datastore == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
(*datastore)->path = NULL;
|
(*datastore)->path = NULL;
|
||||||
(*datastore)->handle = NULL;
|
(*datastore)->datastore_handle = NULL;
|
||||||
(*datastore)->type = NULL;
|
(*datastore)->type = NULL;
|
||||||
(*datastore)->storage_max = NULL;
|
(*datastore)->storage_max = NULL;
|
||||||
(*datastore)->gc_period = NULL;
|
(*datastore)->gc_period = NULL;
|
||||||
|
@ -67,7 +67,7 @@ int libp2p_datastore_free(struct Datastore* datastore) {
|
||||||
free(datastore->gc_period);
|
free(datastore->gc_period);
|
||||||
if (datastore->params != NULL)
|
if (datastore->params != NULL)
|
||||||
free(datastore->params);
|
free(datastore->params);
|
||||||
if (datastore->handle != NULL)
|
if (datastore->datastore_handle != NULL)
|
||||||
datastore->datastore_close(datastore);
|
datastore->datastore_close(datastore);
|
||||||
free(datastore);
|
free(datastore);
|
||||||
}
|
}
|
||||||
|
@ -99,6 +99,7 @@ int libp2p_datastore_record_free(struct DatastoreRecord* rec) {
|
||||||
}
|
}
|
||||||
rec->value_size = 0;
|
rec->value_size = 0;
|
||||||
rec->timestamp = 0;
|
rec->timestamp = 0;
|
||||||
|
free(rec);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,8 +36,7 @@ struct Datastore {
|
||||||
int (*datastore_cursor_close)(struct Datastore* datastore);
|
int (*datastore_cursor_close)(struct Datastore* datastore);
|
||||||
int (*datastore_cursor_get)(unsigned char** key, int* key_length, unsigned char** value, int* value_length, enum DatastoreCursorOp op, struct Datastore* datastore);
|
int (*datastore_cursor_get)(unsigned char** key, int* key_length, unsigned char** value, int* value_length, enum DatastoreCursorOp op, struct Datastore* datastore);
|
||||||
// generic connection and status variables for the datastore
|
// generic connection and status variables for the datastore
|
||||||
void* handle; // a handle to the database
|
void* datastore_handle; // a handle to the database
|
||||||
void* cursor; // a current cursor
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
|
|
@ -84,6 +84,10 @@ int libp2p_net_multistream_handle_message(const uint8_t *incoming, size_t incomi
|
||||||
}
|
}
|
||||||
|
|
||||||
int libp2p_net_multistream_shutdown(void* protocol_context) {
|
int libp2p_net_multistream_shutdown(void* protocol_context) {
|
||||||
|
struct MultistreamContext* context = (struct MultistreamContext*) protocol_context;
|
||||||
|
if (context != NULL) {
|
||||||
|
free(context);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue