Skip to content

Commit 0f1fe27

Browse files
author
Raymond Feng
committed
Fix windows build issue
1 parent af1a38f commit 0f1fe27

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/connection.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -901,7 +901,7 @@ Local<Date> OracleDateToV8Date(oracle::occi::Date* d) {
901901
int year;
902902
unsigned int month, day, hour, min, sec;
903903
d->getDate(year, month, day, hour, min, sec);
904-
Local<Date> date = Nan::New<Date>(static_cast<double>(time(NULL))).ToLocalChecked();
904+
Local<Date> date = Nan::New<Date>(0.0).ToLocalChecked();
905905
CallDateMethod(date, "setUTCFullYear", year);
906906
CallDateMethod(date, "setUTCMonth", month - 1);
907907
CallDateMethod(date, "setUTCDate", day);
@@ -917,7 +917,7 @@ Local<Date> OracleTimestampToV8Date(oracle::occi::Timestamp* d) {
917917
unsigned int month, day, hour, min, sec, fs, ms;
918918
d->getDate(year, month, day);
919919
d->getTime(hour, min, sec, fs);
920-
Local<Date> date = Nan::New<Date>(static_cast<double>(time(NULL))).ToLocalChecked();
920+
Local<Date> date = Nan::New<Date>(0.0).ToLocalChecked();
921921
//occi always returns nanoseconds, regardless of precision set on timestamp column
922922
ms = (fs / 1000000.0) + 0.5; // add 0.5 to round to nearest millisecond
923923

@@ -939,37 +939,38 @@ Local<Object> Connection::CreateV8ObjectFromRow(vector<column_t*> columns,
939939
columns.end(); iterator != end; ++iterator, colIndex++) {
940940
column_t* col = *iterator;
941941
void* val = currentRow->values[colIndex];
942+
Local<String> colName = Nan::New<String>(col->name.c_str()).ToLocalChecked();
942943
if (val == NULL) {
943-
obj->Set(Nan::New<String>(col->name.c_str()).ToLocalChecked(), Nan::Null());
944+
obj->Set(colName, Nan::Null());
944945
} else {
945946
switch (col->type) {
946947
case VALUE_TYPE_STRING: {
947948
string* v = (string*) val;
948-
obj->Set(Nan::New<String>(col->name.c_str()).ToLocalChecked(), Nan::New<String>(v->c_str()).ToLocalChecked());
949+
obj->Set(colName, Nan::New<String>(v->c_str()).ToLocalChecked());
949950
delete v;
950951
}
951952
break;
952953
case VALUE_TYPE_NUMBER: {
953954
oracle::occi::Number* v = (oracle::occi::Number*) val;
954-
obj->Set(Nan::New<String>(col->name.c_str()).ToLocalChecked(), Nan::New<Number>((double) (*v)));
955+
obj->Set(colName, Nan::New<Number>((double) (*v)));
955956
delete v;
956957
}
957958
break;
958959
case VALUE_TYPE_DATE: {
959960
oracle::occi::Date* v = (oracle::occi::Date*) val;
960-
obj->Set(Nan::New<String>(col->name.c_str()).ToLocalChecked(), OracleDateToV8Date(v));
961+
obj->Set(colName, OracleDateToV8Date(v));
961962
delete v;
962963
}
963964
break;
964965
case VALUE_TYPE_TIMESTAMP: {
965966
oracle::occi::Timestamp* v = (oracle::occi::Timestamp*) val;
966-
obj->Set(Nan::New<String>(col->name.c_str()).ToLocalChecked(), OracleTimestampToV8Date(v));
967+
obj->Set(colName, OracleTimestampToV8Date(v));
967968
delete v;
968969
}
969970
break;
970971
case VALUE_TYPE_CLOB: {
971972
buffer_t *v = (buffer_t *) val;
972-
obj->Set(Nan::New<String>(col->name.c_str()).ToLocalChecked(), Nan::New<String>((const char*)v->data, v->length).ToLocalChecked());
973+
obj->Set(colName, Nan::New<String>((const char*)v->data, v->length).ToLocalChecked());
973974
delete[] v->data;
974975
delete v;
975976
}
@@ -978,7 +979,7 @@ Local<Object> Connection::CreateV8ObjectFromRow(vector<column_t*> columns,
978979
buffer_t *v = (buffer_t *) val;
979980
// convert to V8 buffer
980981
v8::Local<v8::Object> v8Buffer = Nan::NewBuffer((char *)v->data, (uint32_t)v->length).ToLocalChecked();
981-
obj->Set(Nan::New<String>(col->name.c_str()).ToLocalChecked(), v8Buffer);
982+
obj->Set(colName, v8Buffer);
982983
// Nan will free the memory of the buffer
983984
delete v;
984985
break;
@@ -1109,7 +1110,7 @@ void Connection::handleResult(ExecuteBaton* baton, Local<Value> (&argv)[2]) {
11091110
// convert to V8 buffer
11101111
v8::Local<v8::Object> v8Buffer = Nan::NewBuffer((char *)output->bufVal, output->bufLength).ToLocalChecked();
11111112
obj->Set(prop, v8Buffer);
1112-
delete[] output->bufVal;
1113+
// Memory will be freed by NewBuffer GC
11131114
break;
11141115
}
11151116
case OutParam::OCCIDATE:

0 commit comments

Comments
 (0)