Make freezing stuff non-terminating TODO

This commit is contained in:
Alexander Shabalin
2021-02-01 13:17:47 +03:00
committed by Vasily Levchenko
parent d72e63334d
commit 5b6a8a3bdb
3 changed files with 12 additions and 7 deletions
@@ -176,6 +176,10 @@ KNativePtr Kotlin_AtomicNativePtr_get(KRef thiz) {
} }
void Kotlin_AtomicReference_checkIfFrozen(KRef value) { void Kotlin_AtomicReference_checkIfFrozen(KRef value) {
if (CurrentMemoryModel == MemoryModel::kExperimental) {
// TODO: Remove when freezing is implemented.
return;
}
if (value != nullptr && !isPermanentOrFrozen(value)) { if (value != nullptr && !isPermanentOrFrozen(value)) {
ThrowInvalidMutabilityException(value); ThrowInvalidMutabilityException(value);
} }
@@ -95,6 +95,10 @@ void ObjHeader::destroyMetaObject(ObjHeader* object) {
mm::ExtraObjectData::Uninstall(object); mm::ExtraObjectData::Uninstall(object);
} }
ALWAYS_INLINE bool isPermanentOrFrozen(const ObjHeader* obj) {
return obj->permanent() || isFrozen(obj);
}
ALWAYS_INLINE bool isShareable(const ObjHeader* obj) { ALWAYS_INLINE bool isShareable(const ObjHeader* obj) {
// TODO: Remove when legacy MM is gone. // TODO: Remove when legacy MM is gone.
return true; return true;
+4 -7
View File
@@ -8,21 +8,18 @@
#include "KAssert.h" #include "KAssert.h"
ALWAYS_INLINE bool isFrozen(const ObjHeader* obj) { ALWAYS_INLINE bool isFrozen(const ObjHeader* obj) {
TODO(); // TODO: Unimplemented
} return false;
ALWAYS_INLINE bool isPermanentOrFrozen(const ObjHeader* obj) {
TODO();
} }
extern "C" { extern "C" {
void MutationCheck(ObjHeader* obj) { void MutationCheck(ObjHeader* obj) {
TODO(); // TODO: Unimplemented
} }
void FreezeSubgraph(ObjHeader* obj) { void FreezeSubgraph(ObjHeader* obj) {
TODO(); // TODO: Unimplemented
} }
void EnsureNeverFrozen(ObjHeader* obj) { void EnsureNeverFrozen(ObjHeader* obj) {