Browse Source

smalloc: don't do Has(key), then Get(key)

Don't check for the key first before retrieving it. Just fetch it and
check that it has the type we expect.
v0.11.6-release
Ben Noordhuis 12 years ago
parent
commit
9c59978f49
  1. 13
      src/smalloc.cc

13
src/smalloc.cc

@ -301,11 +301,14 @@ void AllocDispose(const FunctionCallbackInfo<Value>& args) {
void AllocDispose(Handle<Object> obj) { void AllocDispose(Handle<Object> obj) {
HandleScope scope(node_isolate); HandleScope scope(node_isolate);
if (using_alloc_cb && obj->Has(smalloc_sym)) { if (using_alloc_cb) {
Local<External> ext = obj->GetHiddenValue(smalloc_sym).As<External>(); Local<Value> ext_v = obj->GetHiddenValue(smalloc_sym);
CallbackInfo* cb_info = static_cast<CallbackInfo*>(ext->Value()); if (ext_v->IsExternal()) {
TargetFreeCallback(node_isolate, &cb_info->p_obj, cb_info); Local<External> ext = ext_v.As<External>();
return; CallbackInfo* cb_info = static_cast<CallbackInfo*>(ext->Value());
TargetFreeCallback(node_isolate, &cb_info->p_obj, cb_info);
return;
}
} }
char* data = static_cast<char*>(obj->GetIndexedPropertiesExternalArrayData()); char* data = static_cast<char*>(obj->GetIndexedPropertiesExternalArrayData());

Loading…
Cancel
Save