| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 Eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 { | 74 { |
| 75 if (this.destructor) | 75 if (this.destructor) |
| 76 { | 76 { |
| 77 this.destructor.call(obj); | 77 this.destructor.call(obj); |
| 78 if (obj._refCount | 0) | 78 if (obj._refCount | 0) |
| 79 throw new Error("Reference count is no longer zero after calling the des
tructor"); | 79 throw new Error("Reference count is no longer zero after calling the des
tructor"); |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 finally | 82 finally |
| 83 { | 83 { |
| 84 for (let [prop, value] of this.initialValues) | 84 if (obj._copy) |
| 85 obj[prop] = value; | 85 { |
| 86 Object.getPrototypeOf(obj).release(); |
| 87 } |
| 88 else |
| 89 { |
| 90 for (let [prop, value] of this.initialValues) |
| 91 obj[prop] = value; |
| 86 | 92 |
| 87 dealloc(this.firstFree, obj.bufferIndex, obj.byteOffset); | 93 dealloc(this.firstFree, obj.bufferIndex, obj.byteOffset); |
| 94 } |
| 88 } | 95 } |
| 89 } | 96 } |
| 90 | 97 |
| 91 function createGetter(offset) | 98 function createGetter(offset) |
| 92 { | 99 { |
| 93 offset = offset | 0; | 100 offset = offset | 0; |
| 94 | 101 |
| 95 let views = Array.prototype.slice.call(arguments, 1); | 102 let views = Array.prototype.slice.call(arguments, 1); |
| 96 let reference = new Reference(types, views); | 103 let reference = new Reference(types, views); |
| 97 return function(bufferIndex, byteOffset) | 104 return function(bufferIndex, byteOffset) |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 this._refCount--; | 330 this._refCount--; |
| 324 if (this._refCount == 0 && this._state < STATE_RELEASING) | 331 if (this._refCount == 0 && this._state < STATE_RELEASING) |
| 325 { | 332 { |
| 326 this._state = STATE_RELEASING; | 333 this._state = STATE_RELEASING; |
| 327 free.call(types[this.typeId | 0], this); | 334 free.call(types[this.typeId | 0], this); |
| 328 } | 335 } |
| 329 } | 336 } |
| 330 }, null); | 337 }, null); |
| 331 | 338 |
| 332 exports.ObjectType = ObjectBase.extend; | 339 exports.ObjectType = ObjectBase.extend; |
| OLD | NEW |