@@ -901,7 +901,7 @@ Local<Date> OracleDateToV8Date(oracle::occi::Date* d) {
901
901
int year;
902
902
unsigned int month, day, hour, min, sec;
903
903
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 ();
905
905
CallDateMethod (date, " setUTCFullYear" , year);
906
906
CallDateMethod (date, " setUTCMonth" , month - 1 );
907
907
CallDateMethod (date, " setUTCDate" , day);
@@ -917,7 +917,7 @@ Local<Date> OracleTimestampToV8Date(oracle::occi::Timestamp* d) {
917
917
unsigned int month, day, hour, min, sec, fs, ms;
918
918
d->getDate (year, month, day);
919
919
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 ();
921
921
// occi always returns nanoseconds, regardless of precision set on timestamp column
922
922
ms = (fs / 1000000.0 ) + 0.5 ; // add 0.5 to round to nearest millisecond
923
923
@@ -939,37 +939,38 @@ Local<Object> Connection::CreateV8ObjectFromRow(vector<column_t*> columns,
939
939
columns.end (); iterator != end; ++iterator, colIndex++) {
940
940
column_t * col = *iterator;
941
941
void * val = currentRow->values [colIndex];
942
+ Local<String> colName = Nan::New<String>(col->name .c_str ()).ToLocalChecked ();
942
943
if (val == NULL ) {
943
- obj->Set (Nan::New<String>(col-> name . c_str ()). ToLocalChecked () , Nan::Null ());
944
+ obj->Set (colName , Nan::Null ());
944
945
} else {
945
946
switch (col->type ) {
946
947
case VALUE_TYPE_STRING: {
947
948
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 ());
949
950
delete v;
950
951
}
951
952
break ;
952
953
case VALUE_TYPE_NUMBER: {
953
954
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)));
955
956
delete v;
956
957
}
957
958
break ;
958
959
case VALUE_TYPE_DATE: {
959
960
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));
961
962
delete v;
962
963
}
963
964
break ;
964
965
case VALUE_TYPE_TIMESTAMP: {
965
966
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));
967
968
delete v;
968
969
}
969
970
break ;
970
971
case VALUE_TYPE_CLOB: {
971
972
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 ());
973
974
delete[] v->data ;
974
975
delete v;
975
976
}
@@ -978,7 +979,7 @@ Local<Object> Connection::CreateV8ObjectFromRow(vector<column_t*> columns,
978
979
buffer_t *v = (buffer_t *) val;
979
980
// convert to V8 buffer
980
981
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);
982
983
// Nan will free the memory of the buffer
983
984
delete v;
984
985
break ;
@@ -1109,7 +1110,7 @@ void Connection::handleResult(ExecuteBaton* baton, Local<Value> (&argv)[2]) {
1109
1110
// convert to V8 buffer
1110
1111
v8::Local<v8::Object> v8Buffer = Nan::NewBuffer ((char *)output->bufVal , output->bufLength ).ToLocalChecked ();
1111
1112
obj->Set (prop, v8Buffer);
1112
- delete[] output-> bufVal ;
1113
+ // Memory will be freed by NewBuffer GC
1113
1114
break ;
1114
1115
}
1115
1116
case OutParam::OCCIDATE:
0 commit comments