bool objOffsetEmpty(TypedValue& tvRef, ObjectData* base, const Variant& offset, bool validate /* = true */) { if (objOffsetExists(base, offset) == OffsetExistsResult::DoesNotExist) { return true; } TypedValue* result = objOffsetGet(tvRef, base, offset, false); assert(result); return !cellToBool(*tvToCell(result)); }
bool objOffsetEmpty(TypedValue& tvRef, ObjectData* base, CVarRef offset, bool validate /* = true */) { if (!objOffsetExists(base, offset)) { return true; } TypedValue* result = objOffsetGet(tvRef, base, offset, false); assert(result); return empty(tvAsCVarRef(result)); }
bool objOffsetEmpty( ObjectData* base, TypedValue offset, bool validate /* = true */ ) { if (objOffsetExists(base, offset) == OffsetExistsResult::DoesNotExist) { return true; } auto value = objOffsetGet(base, offset, false); auto result = !cellToBool(*tvToCell(&value)); tvRefcountedDecRef(value); return result; }