diff options
Diffstat (limited to 'src/embind/embind.js')
-rwxr-xr-x | src/embind/embind.js | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/embind/embind.js b/src/embind/embind.js index 48bf2a7f..5dd631ff 100755 --- a/src/embind/embind.js +++ b/src/embind/embind.js @@ -339,10 +339,12 @@ function __embind_register_tuple_element( memberPointer = copyMemberPointer(memberPointer, memberPointerSize); var tupleType = requireRegisteredType(rawTupleType, 'tuple'); - // TODO: this could register elements out of order + var index = tupleType.elements.length; + tupleType.elements.push(undefined); + whenDependentTypesAreResolved([rawType], function(type) { type = type[0]; - tupleType.elements.push({ + tupleType.elements[index] = { read: function(ptr) { return type.fromWireType(getter(ptr, memberPointer)); }, @@ -351,7 +353,7 @@ function __embind_register_tuple_element( setter(ptr, memberPointer, type.toWireType(destructors, o)); runDestructors(destructors); } - }); + }; }); } |