Browse Source

smalloc: check if obj has external data

PR-URL: https://github.com/joyent/node/pull/8655
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
v0.11.15-release
Vladimir Kurchatkin 10 years ago
committed by Trevor Norris
parent
commit
f65a5cbcde
  1. 2
      lib/smalloc.js
  2. 8
      test/simple/test-smalloc.js

2
lib/smalloc.js

@ -86,6 +86,8 @@ function dispose(obj) {
throw new TypeError('obj must be an Object'); throw new TypeError('obj must be an Object');
if (util.isBuffer(obj)) if (util.isBuffer(obj))
throw new TypeError('obj cannot be a Buffer'); throw new TypeError('obj cannot be a Buffer');
if (!smalloc.hasExternalData(obj))
throw new Error('obj has no external array data');
smalloc.dispose(obj); smalloc.dispose(obj);
} }

8
test/simple/test-smalloc.js

@ -314,11 +314,15 @@ for (var i = 0; i < 5; i++)
// only allow object to be passed to dispose // only allow object to be passed to dispose
assert.throws(function() { assert.throws(function() {
alloc.dispose(null); smalloc.dispose(null);
}); });
// can't dispose a Buffer // can't dispose a Buffer
assert.throws(function() { assert.throws(function() {
alloc.dispose(new Buffer()); smalloc.dispose(new Buffer());
});
assert.throws(function() {
smalloc.dispose({});
}); });

Loading…
Cancel
Save