Commit 8e6b8f46 by Konstantin Käfer

deallocate our stuff in the destructor

parent d7cd1cd3
......@@ -157,12 +157,14 @@ const char* sqlite_code_string(int code);
delete baton;
#define DELETE_FIELD(field) \
switch ((field)->type) { \
case SQLITE_INTEGER: delete (Values::Integer*)(field); break; \
case SQLITE_FLOAT: delete (Values::Float*)(field); break; \
case SQLITE_TEXT: delete (Values::Text*)(field); break; \
case SQLITE_BLOB: delete (Values::Blob*)(field); break; \
case SQLITE_NULL: delete (Values::Null*)(field); break; \
if (field != NULL) { \
switch ((field)->type) { \
case SQLITE_INTEGER: delete (Values::Integer*)(field); break; \
case SQLITE_FLOAT: delete (Values::Float*)(field); break; \
case SQLITE_TEXT: delete (Values::Text*)(field); break; \
case SQLITE_BLOB: delete (Values::Blob*)(field); break; \
case SQLITE_NULL: delete (Values::Null*)(field); break; \
} \
}
#endif
......
......@@ -297,8 +297,6 @@ bool Statement::Bind(const Parameters parameters) {
status = sqlite3_bind_null(handle, pos);
} break;
}
DELETE_FIELD(field);
}
if (status != SQLITE_OK) {
......
......@@ -90,6 +90,10 @@ public:
callback = Persistent<Function>::New(cb_);
}
~Baton() {
for (int i = 0; i < parameters.size(); i++) {
Values::Field* field = parameters[i];
DELETE_FIELD(field);
}
stmt->Unref();
ev_unref(EV_DEFAULT_UC);
callback.Dispose();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment