package kotlinx.coroutines; import kotlin.coroutines.Continuation; import kotlin.coroutines.ContinuationInterceptor; import kotlin.coroutines.CoroutineContext; import kotlin.coroutines.EmptyCoroutineContext; import kotlin.coroutines.jvm.internal.CoroutineStackFrame; import kotlin.jvm.functions.Function2; import kotlin.jvm.internal.Ref; /* loaded from: classes5.dex */ public abstract class CoroutineContextKt { public static final String getCoroutineName(CoroutineContext coroutineContext) { return null; } public static final CoroutineContext newCoroutineContext(CoroutineScope coroutineScope, CoroutineContext coroutineContext) { CoroutineContext foldCopies = foldCopies(coroutineScope.getCoroutineContext(), coroutineContext, true); return (foldCopies == Dispatchers.getDefault() || foldCopies.get(ContinuationInterceptor.Key) != null) ? foldCopies : foldCopies.plus(Dispatchers.getDefault()); } public static final CoroutineContext newCoroutineContext(CoroutineContext coroutineContext, CoroutineContext coroutineContext2) { return !hasCopyableElements(coroutineContext2) ? coroutineContext.plus(coroutineContext2) : foldCopies(coroutineContext, coroutineContext2, false); } public static final boolean hasCopyableElements(CoroutineContext coroutineContext) { return ((Boolean) coroutineContext.fold(Boolean.FALSE, new Function2() { // from class: kotlinx.coroutines.CoroutineContextKt$hasCopyableElements$1 public final Boolean invoke(boolean z, CoroutineContext.Element element) { return Boolean.valueOf(z); } @Override // kotlin.jvm.functions.Function2 public /* bridge */ /* synthetic */ Object invoke(Object obj, Object obj2) { return invoke(((Boolean) obj).booleanValue(), (CoroutineContext.Element) obj2); } })).booleanValue(); } /* JADX WARN: Multi-variable type inference failed */ /* JADX WARN: Type inference failed for: r4v4, types: [T, java.lang.Object] */ public static final CoroutineContext foldCopies(CoroutineContext coroutineContext, CoroutineContext coroutineContext2, final boolean z) { boolean hasCopyableElements = hasCopyableElements(coroutineContext); boolean hasCopyableElements2 = hasCopyableElements(coroutineContext2); if (!hasCopyableElements && !hasCopyableElements2) { return coroutineContext.plus(coroutineContext2); } final Ref.ObjectRef objectRef = new Ref.ObjectRef(); objectRef.element = coroutineContext2; EmptyCoroutineContext emptyCoroutineContext = EmptyCoroutineContext.INSTANCE; CoroutineContext coroutineContext3 = (CoroutineContext) coroutineContext.fold(emptyCoroutineContext, new Function2() { // from class: kotlinx.coroutines.CoroutineContextKt$foldCopies$folded$1 /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ { super(2); } @Override // kotlin.jvm.functions.Function2 public final CoroutineContext invoke(CoroutineContext coroutineContext4, CoroutineContext.Element element) { return coroutineContext4.plus(element); } }); if (hasCopyableElements2) { objectRef.element = ((CoroutineContext) objectRef.element).fold(emptyCoroutineContext, new Function2() { // from class: kotlinx.coroutines.CoroutineContextKt$foldCopies$1 @Override // kotlin.jvm.functions.Function2 public final CoroutineContext invoke(CoroutineContext coroutineContext4, CoroutineContext.Element element) { return coroutineContext4.plus(element); } }); } return coroutineContext3.plus((CoroutineContext) objectRef.element); } public static final UndispatchedCoroutine updateUndispatchedCompletion(Continuation continuation, CoroutineContext coroutineContext, Object obj) { if (!(continuation instanceof CoroutineStackFrame) || coroutineContext.get(UndispatchedMarker.INSTANCE) == null) { return null; } UndispatchedCoroutine undispatchedCompletion = undispatchedCompletion((CoroutineStackFrame) continuation); if (undispatchedCompletion != null) { undispatchedCompletion.saveThreadContext(coroutineContext, obj); } return undispatchedCompletion; } public static final UndispatchedCoroutine undispatchedCompletion(CoroutineStackFrame coroutineStackFrame) { while (!(coroutineStackFrame instanceof DispatchedCoroutine) && (coroutineStackFrame = coroutineStackFrame.getCallerFrame()) != null) { if (coroutineStackFrame instanceof UndispatchedCoroutine) { return (UndispatchedCoroutine) coroutineStackFrame; } } return null; } }