Пример #1
0
MIterCtx::~MIterCtx() {
    m_mArray->~MutableArrayIter();
    smart_free(m_mArray);
    tvRefcountedDecRef(&m_key);
    tvRefcountedDecRef(&m_val);
    if (m_ref) decRefRef(const_cast<RefData*>(m_ref));
}
void c_SetResultToRefWaitHandle::markAsFailed(CObjRef exception) {
  RefData* ref = m_ref;

  m_ref = nullptr;
  tvSetIgnoreRef(make_tv<KindOfNull>(), *ref->tv());
  decRefRef(ref);

  setException(exception.get());
  m_child = nullptr;
}
void c_SetResultToRefWaitHandle::markAsSucceeded(const Cell& result) {
  RefData* ref = m_ref;

  m_ref = nullptr;
  cellSet(result, *ref->tv());
  decRefRef(ref);

  setResult(result);
  m_child = nullptr;
}
void c_SetResultToRefWaitHandle::markAsSucceeded(const TypedValue* result) {
  RefData* ref = m_ref;

  m_ref = nullptr;
  tvSetIgnoreRef(result, ref->tv());
  decRefRef(ref);

  setResult(result);
  m_child = nullptr;
}
Пример #5
0
void ProxyArray::Release(ArrayData*ad) {
  decRefRef(asProxyArray(ad)->m_ref);
  MM().objFree(ad, sizeof(ProxyArray));
}
c_SetResultToRefWaitHandle::~c_SetResultToRefWaitHandle() {
  if (m_ref) {
    decRefRef(m_ref);
  }
}