Skip to content

Commit 8900952

Browse files
committed
Merge pull request totaljs#348 from deadman2000/v1.9.6
Fixed U.request UTF-8 bug
2 parents 4ab31b0 + a48df43 commit 8900952

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

index.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,12 @@ global.NEWTRANSFORM = function(name, fn, isDefault) {
283283
return TransformBuilder.addTransform.apply(this, arguments);
284284
};
285285

286+
/**
287+
* Creates schema in the specific group
288+
* @param {String} [group=default]
289+
* @param {String} name
290+
* @return {SchemaBuilderEntity}
291+
*/
286292
global.NEWSCHEMA = function(group, name) {
287293
if (!name) {
288294
name = group;

utils.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ exports.request = function(url, flags, data, callback, cookies, headers, encodin
576576

577577
var onResponse = function(res) {
578578

579-
res._buffer = '';
579+
res._buffer = null;
580580
res._bufferlength = 0;
581581

582582
// We have redirect
@@ -588,16 +588,21 @@ exports.request = function(url, flags, data, callback, cookies, headers, encodin
588588

589589
res.on('data', function(chunk) {
590590
var self = this;
591-
self._buffer += chunk.toString(encoding);
591+
if (self._buffer)
592+
self._buffer = Buffer.concat([self._buffer, chunk]);
593+
else
594+
self._buffer = chunk;
592595
self._bufferlength += chunk.length;
593596
e.emit('data', chunk, responseLength ? (self._bufferlength / responseLength) * 100 : 0);
594597
});
595598

596599
res.on('end', function() {
597600
var self = this;
598-
e.emit('end', self._buffer, self.statusCode, self.headers, uri.host);
601+
var str = self._buffer.toString(encoding);
602+
delete self._buffer; // Free memory
603+
e.emit('end', str, self.statusCode, self.headers, uri.host);
599604
if (callback)
600-
callback(null, self._buffer, self.statusCode, self.headers, uri.host);
605+
callback(null, str, self.statusCode, self.headers, uri.host);
601606
callback = null;
602607
});
603608

0 commit comments

Comments
 (0)