aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChad Austin <chad@imvu.com>2014-05-08 21:52:21 -0700
committerBruce Mitchener <bruce.mitchener@gmail.com>2014-05-21 22:59:01 +0700
commit3147a2175cc90c1ceca368979bad72870b02561b (patch)
treea502276fa160ddf7937782ffd05a6c3ce47d0149 /src
parentc75048adf764b9f14ed7a91dc46dfaee66dcbf3a (diff)
handle some scenarios where you mix delete() and deleteLater()
Diffstat (limited to 'src')
-rw-r--r--src/embind/embind.js5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/embind/embind.js b/src/embind/embind.js
index f9bfa9e8..27fa87b8 100644
--- a/src/embind/embind.js
+++ b/src/embind/embind.js
@@ -1322,8 +1322,7 @@ ClassHandle.prototype['delete'] = function ClassHandle_delete() {
throwInstanceAlreadyDeleted(this);
}
- // TODO: test for multiple deleteLater() on JS instance handle
- if (this.$$.deleteScheduled) {
+ if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
throwBindingError('Object already scheduled for deletion');
}
@@ -1348,7 +1347,7 @@ ClassHandle.prototype['deleteLater'] = function deleteLater() {
if (!this.$$.ptr) {
throwInstanceAlreadyDeleted(this);
}
- if (this.$$.deleteScheduled) {
+ if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
throwBindingError('Object already scheduled for deletion');
}
deletionQueue.push(this);