| 128 | template<typename T> |
| 129 | template<bool isFirstPass> |
| 130 | void |
| 131 | WeakCallbackInfo<T>::invoketwofield(NAN_WEAK_TWOFIELD_CALLBACK_SIG_ data) { |
| 132 | WeakCallbackInfo<T> *cbinfo = unwraptwofield(data); |
| 133 | if (isFirstPass) { |
| 134 | cbinfo->persistent_.Reset(); |
| 135 | data.SetSecondPassCallback(invoketwofield<false>); |
| 136 | } else { |
| 137 | cbinfo->callback_(*cbinfo); |
| 138 | delete cbinfo; |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | template<typename T> |
| 143 | WeakCallbackInfo<T> *WeakCallbackInfo<T>::unwrapparameter( |