Skip to content

Commit 5962dbe

Browse files
committed
src: all wrap's now use actual FunctionTemplate
Instead of simply creating a new v8::Object to contain the connection information, instantiate a new instance of a FunctionTemplate. This will allow future improvements for debugging and performance probes. Additionally, the "provider" argument in the ReqWrap constructor is no longer optional. PR-URL: nodejs/node-v0.x-archive#8110 Signed-off-by: Trevor Norris <trev.norris@gmail.com> Reviewed-by: Fedor Indutny <fedor@indutny.com> Reviewed-by: Alexis Campailla <alexis@janeasystems.com> Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
1 parent b1e9d33 commit 5962dbe

17 files changed

Lines changed: 404 additions & 159 deletions

lib/child_process.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ var assert = require('assert');
2727
var util = require('util');
2828

2929
var Process = process.binding('process_wrap').Process;
30+
var WriteWrap = process.binding('stream_wrap').WriteWrap;
3031
var uv = process.binding('uv');
3132

3233
var spawn_sync; // Lazy-loaded process.binding('spawn_sync')
@@ -473,7 +474,8 @@ function setupChannel(target, channel) {
473474
return;
474475
}
475476

476-
var req = { oncomplete: nop };
477+
var req = new WriteWrap();
478+
req.oncomplete = nop;
477479
var string = JSON.stringify(message) + '\n';
478480
var err = channel.writeUtf8String(req, string, handle);
479481

lib/dgram.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var events = require('events');
2525
var constants = require('constants');
2626

2727
var UDP = process.binding('udp_wrap').UDP;
28+
var SendWrap = process.binding('udp_wrap').SendWrap;
2829

2930
var BIND_STATE_UNBOUND = 0;
3031
var BIND_STATE_BINDING = 1;
@@ -317,7 +318,9 @@ Socket.prototype.send = function(buffer,
317318
self.emit('error', ex);
318319
}
319320
else if (self._handle) {
320-
var req = { buffer: buffer, length: length }; // Keep reference alive.
321+
var req = new SendWrap();
322+
req.buffer = buffer; // Keep reference alive.
323+
req.length = length;
321324
if (callback) {
322325
req.callback = callback;
323326
req.oncomplete = afterSend;

lib/dns.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ var util = require('util');
2525
var cares = process.binding('cares_wrap');
2626
var uv = process.binding('uv');
2727

28+
var GetAddrInfoReqWrap = cares.GetAddrInfoReqWrap;
29+
var GetNameInfoReqWrap = cares.GetNameInfoReqWrap;
30+
2831
var isIp = net.isIP;
2932

3033

@@ -142,12 +145,11 @@ exports.lookup = function lookup(hostname, options, callback) {
142145
return {};
143146
}
144147

145-
var req = {
146-
callback: callback,
147-
family: family,
148-
hostname: hostname,
149-
oncomplete: onlookup
150-
};
148+
var req = new GetAddrInfoReqWrap();
149+
req.callback = callback;
150+
req.family = family;
151+
req.hostname = hostname;
152+
req.oncomplete = onlookup;
151153

152154
var err = cares.getaddrinfo(req, hostname, family, hints);
153155
if (err) {
@@ -178,12 +180,12 @@ exports.lookupService = function(host, port, callback) {
178180

179181
callback = makeAsync(callback);
180182

181-
var req = {
182-
callback: callback,
183-
host: host,
184-
port: port,
185-
oncomplete: onlookupservice
186-
};
183+
var req = new GetNameInfoReqWrap();
184+
req.callback = callback;
185+
req.host = host;
186+
req.port = port;
187+
req.oncomplete = onlookupservice;
188+
187189
var err = cares.getnameinfo(req, host, port);
188190
if (err) throw errnoException(err, 'getnameinfo', host);
189191

0 commit comments

Comments
 (0)