mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-07 08:03:29 +00:00
fix warning
Signed-off-by: hanweiqi <hanweiqi3@huawei.com>
This commit is contained in:
parent
42a04ff902
commit
45f458f9da
@ -30,7 +30,7 @@ constexpr size_t INITIAL_ASSERT_DATA = AssertGarbageCollectBit::Mask() |
|
||||
|
||||
thread_local size_t currentAssertData = INITIAL_ASSERT_DATA;
|
||||
|
||||
template<AssertType type, bool isAllow, bool IsDebug /* = IS_ALLOW_CHECK*/>
|
||||
template<AssertType type, bool isAllow, bool IsDebug>
|
||||
bool AssertScopeT<type, isAllow, IsDebug>::IsAllowed()
|
||||
{
|
||||
return true;
|
||||
|
@ -118,24 +118,24 @@ using AllowLocalToShareWeakRefHandle = AssertScopeT<AssertType::LOCAL_TO_SHARE_W
|
||||
#endif
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define CHECK_NO_GC ASSERT_PRINT(AllowGarbageCollection::IsAllowed(), "disallow execute garbage collection.");
|
||||
#define CHECK_NO_GC ASSERT_PRINT(AllowGarbageCollection::IsAllowed(), "disallow execute garbage collection.")
|
||||
// Some checks failed, need to check and fix
|
||||
#undef CHECK_NO_GC
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define CHECK_NO_GC static_cast<void>(0);
|
||||
#define CHECK_NO_GC static_cast<void>(0)
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define CHECK_NO_HEAP_ALLOC ASSERT_PRINT(AllowHeapAlloc::IsAllowed(), "disallow execute heap alloc.");
|
||||
#define CHECK_NO_HEAP_ALLOC ASSERT_PRINT(AllowHeapAlloc::IsAllowed(), "disallow execute heap alloc.")
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define CHECK_NO_HANDLE_ALLOC ASSERT_PRINT(AllowHandleAllocation::IsAllowed(), "disallow execute handle alloc.");
|
||||
#define CHECK_NO_HANDLE_ALLOC ASSERT_PRINT(AllowHandleAllocation::IsAllowed(), "disallow execute handle alloc.")
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define CHECK_NO_DEREF_HANDLE ASSERT_PRINT(AllowDeRefHandle::IsAllowed(), "disallow execute deref handle.");
|
||||
#define CHECK_NO_DEREF_HANDLE ASSERT_PRINT(AllowDeRefHandle::IsAllowed(), "disallow execute deref handle.")
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define CHECK_NO_LOCAL_TO_SHARE_WEAK_REF_HANDLE \
|
||||
ASSERT_PRINT(AllowLocalToShareWeakRefHandle::IsAllowed(), "disallow local to share weak ref handle.");
|
||||
ASSERT_PRINT(AllowLocalToShareWeakRefHandle::IsAllowed(), "disallow local to share weak ref handle.")
|
||||
} // namespace panda::ecmascript
|
||||
|
||||
#endif // ECMASCRIPT_MEM_ASSERT_SCOPE_H
|
||||
|
@ -43,7 +43,7 @@ static ARK_INLINE void WriteBarrier(const JSThread *thread, void *obj, size_t of
|
||||
} else if (!objectRegion->InSharedHeap() && valueRegion->InSharedSweepableSpace()) {
|
||||
#ifndef NDEBUG
|
||||
if (UNLIKELY(JSTaggedValue(value).IsWeakForHeapObject())) {
|
||||
CHECK_NO_LOCAL_TO_SHARE_WEAK_REF_HANDLE
|
||||
CHECK_NO_LOCAL_TO_SHARE_WEAK_REF_HANDLE;
|
||||
}
|
||||
#endif
|
||||
objectRegion->InsertLocalToShareRSet(slotAddr);
|
||||
|
@ -879,7 +879,7 @@ void Heap::CollectGarbage(TriggerGCType gcType, GCReason reason)
|
||||
#if defined(ECMASCRIPT_SUPPORT_CPUPROFILER)
|
||||
[[maybe_unused]] GcStateScope scope(thread_);
|
||||
#endif
|
||||
CHECK_NO_GC
|
||||
CHECK_NO_GC;
|
||||
if (UNLIKELY(ShouldVerifyHeap())) {
|
||||
// pre gc heap verify
|
||||
LOG_ECMA(DEBUG) << "pre gc heap verify";
|
||||
|
@ -72,24 +72,26 @@ bool ParallelEvacuator::VisitBodyInObj(
|
||||
bool ParallelEvacuator::UpdateNewToEdenObjectSlot(ObjectSlot &slot)
|
||||
{
|
||||
JSTaggedValue value(slot.GetTaggedType());
|
||||
if (value.IsHeapObject()) {
|
||||
TaggedObject *object = value.GetHeapObject();
|
||||
Region *valueRegion = Region::ObjectAddressToRange(object);
|
||||
if (!value.IsHeapObject()) {
|
||||
return false;
|
||||
}
|
||||
TaggedObject *object = value.GetHeapObject();
|
||||
Region *valueRegion = Region::ObjectAddressToRange(object);
|
||||
|
||||
// It is only update edenSpace object when iterate NewToEdenRSet
|
||||
if (valueRegion->InEdenSpace()) {
|
||||
MarkWord markWord(object);
|
||||
if (markWord.IsForwardingAddress()) {
|
||||
TaggedObject *dst = markWord.ToForwardingAddress();
|
||||
if (value.IsWeakForHeapObject()) {
|
||||
dst = JSTaggedValue(dst).CreateAndGetWeakRef().GetRawTaggedObject();
|
||||
}
|
||||
slot.Update(dst);
|
||||
} else {
|
||||
if (value.IsWeakForHeapObject()) {
|
||||
slot.Clear();
|
||||
}
|
||||
}
|
||||
// It is only update edenSpace object when iterate NewToEdenRSet
|
||||
if (!valueRegion->InEdenSpace()) {
|
||||
return false;
|
||||
}
|
||||
MarkWord markWord(object);
|
||||
if (markWord.IsForwardingAddress()) {
|
||||
TaggedObject *dst = markWord.ToForwardingAddress();
|
||||
if (value.IsWeakForHeapObject()) {
|
||||
dst = JSTaggedValue(dst).CreateAndGetWeakRef().GetRawTaggedObject();
|
||||
}
|
||||
slot.Update(dst);
|
||||
} else {
|
||||
if (value.IsWeakForHeapObject()) {
|
||||
slot.Clear();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -153,19 +153,20 @@ inline void NonMovableMarker::HandleOldToNewRSet(uint32_t threadId, Region *regi
|
||||
region->IterateAllOldToNewBits([this, threadId, ®ion, isEdenMark](void *mem) -> bool {
|
||||
ObjectSlot slot(ToUintPtr(mem));
|
||||
JSTaggedValue value(slot.GetTaggedType());
|
||||
if (value.IsHeapObject()) {
|
||||
if (value.IsWeakForHeapObject()) {
|
||||
RecordWeakReference(threadId, reinterpret_cast<JSTaggedType *>(mem), region);
|
||||
} else {
|
||||
auto object = value.GetTaggedObject();
|
||||
Region *objectRegion = Region::ObjectAddressToRange(object);
|
||||
if (isEdenMark) {
|
||||
if (objectRegion->InEdenSpace()) {
|
||||
MarkObject(threadId, value.GetTaggedObject());
|
||||
}
|
||||
} else {
|
||||
if (!value.IsHeapObject()) {
|
||||
return true;
|
||||
}
|
||||
if (value.IsWeakForHeapObject()) {
|
||||
RecordWeakReference(threadId, reinterpret_cast<JSTaggedType *>(mem), region);
|
||||
} else {
|
||||
auto object = value.GetTaggedObject();
|
||||
Region *objectRegion = Region::ObjectAddressToRange(object);
|
||||
if (isEdenMark) {
|
||||
if (objectRegion->InEdenSpace()) {
|
||||
MarkObject(threadId, value.GetTaggedObject());
|
||||
}
|
||||
} else {
|
||||
MarkObject(threadId, value.GetTaggedObject());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user