capnp-js
Version:
Capnproto run-time decoding and encoding for Node
15 lines (14 loc) • 621 B
JavaScript
var reader = require('../../reader/layout/list');
var fields = require('../fields');
var upgrade = require('../upgrade');
module.exports = function(List) {
List._deref = function(arena, pointer) {
var instance = new List(arena, false, reader.unsafe(arena, pointer));
var rt = instance._rt();
if (rt.dataBytes < List._CT.dataBytes || rt.pointersBytes < List._CT.pointersBytes) {
upgrade.list(arena, pointer, List._CT);
return new List(arena, false, reader.unsafe(arena, pointer));
}
return instance;
};
};