Skip to content

Commit fc8a2ad

Browse files
authored
Fix pointers comparison (#3075)
***NO_CI***
1 parent a74f248 commit fc8a2ad

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

src/CLR/Core/CLR_RT_HeapCluster.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//
1+
//
22
// Copyright (c) .NET Foundation and Contributors
33
// Portions Copyright (c) Microsoft Corporation. All rights reserved.
44
// See LICENSE file in the project root for full license information.
@@ -12,11 +12,11 @@ void CLR_RT_HeapCluster::HeapCluster_Initialize(CLR_UINT32 size, CLR_UINT32 bloc
1212
NATIVE_PROFILE_CLR_CORE();
1313
GenericNode_Initialize();
1414

15-
size = (size - sizeof(*this)) / sizeof(struct CLR_RT_HeapBlock);
15+
size = (size - sizeof(*this)) / sizeof(CLR_RT_HeapBlock);
1616

17-
m_freeList.DblLinkedList_Initialize(); // CLR_RT_DblLinkedList m_freeList;
18-
m_payloadStart = (CLR_RT_HeapBlock_Node *)&this[1]; // CLR_RT_HeapBlock_Node* m_payloadStart;
19-
m_payloadEnd = &m_payloadStart[size]; // CLR_RT_HeapBlock_Node* m_payloadEnd;
17+
m_freeList.DblLinkedList_Initialize();
18+
m_payloadStart = static_cast<CLR_RT_HeapBlock_Node *>(&this[1]);
19+
m_payloadEnd = &m_payloadStart[size];
2020

2121
// Scan memory looking for possible objects to salvage
2222
CLR_RT_HeapBlock_Node *ptr = m_payloadStart;
@@ -26,7 +26,7 @@ void CLR_RT_HeapCluster::HeapCluster_Initialize(CLR_UINT32 size, CLR_UINT32 bloc
2626
{
2727
if (ptr->DataType() == DATATYPE_WEAKCLASS)
2828
{
29-
CLR_RT_HeapBlock_WeakReference *weak = (CLR_RT_HeapBlock_WeakReference *)ptr;
29+
CLR_RT_HeapBlock_WeakReference *weak = (CLR_RT_HeapBlock_WeakReference *)(ptr);
3030

3131
if (weak->DataSize() == CONVERTFROMSIZETOHEAPBLOCKS(sizeof(*weak)) && weak->m_targetSerialized != NULL &&
3232
(weak->m_identity.m_flags & CLR_RT_HeapBlock_WeakReference::WR_SurviveBoot))
@@ -62,7 +62,7 @@ void CLR_RT_HeapCluster::HeapCluster_Initialize(CLR_UINT32 size, CLR_UINT32 bloc
6262
}
6363
}
6464

65-
if ((unsigned int)(ptr + blockSize) > (unsigned int)end)
65+
if ((uintptr_t)(ptr + blockSize) > (uintptr_t)end)
6666
{
6767
blockSize = (CLR_UINT32)(end - ptr);
6868
}
@@ -208,7 +208,7 @@ void CLR_RT_HeapCluster::RecoverFromGC()
208208
NATIVE_PROFILE_CLR_CORE();
209209

210210
CLR_RT_HeapBlock_Node *ptr = m_payloadStart;
211-
CLR_RT_HeapBlock_Node *end = m_payloadEnd;
211+
CLR_RT_HeapBlock_Node const *end = m_payloadEnd;
212212

213213
//
214214
// Open the free list.
@@ -285,12 +285,14 @@ void CLR_RT_HeapCluster::RecoverFromGC()
285285
CLR_RT_HeapBlock_Node *CLR_RT_HeapCluster::InsertInOrder(CLR_RT_HeapBlock_Node *node, CLR_UINT32 size)
286286
{
287287
NATIVE_PROFILE_CLR_CORE();
288-
CLR_RT_HeapBlock_Node *ptr;
288+
CLR_RT_HeapBlock_Node *ptr = nullptr;
289289

290290
NANOCLR_FOREACH_NODE__NODECL(CLR_RT_HeapBlock_Node, ptr, m_freeList)
291291
{
292292
if (ptr > node)
293+
{
293294
break;
295+
}
294296
}
295297
NANOCLR_FOREACH_NODE_END();
296298

src/CLR/Core/GarbageCollector_Compaction.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -552,14 +552,14 @@ void CLR_RT_GarbageCollector::Heap_Relocate(void **ref)
552552

553553
if (dst >= g_CLR_RT_GarbageCollector.m_relocMinimum && dst < g_CLR_RT_GarbageCollector.m_relocMaximum)
554554
{
555-
RelocationRegion *relocBlocks = g_CLR_RT_GarbageCollector.m_relocBlocks;
555+
RelocationRegion const *relocBlocks = g_CLR_RT_GarbageCollector.m_relocBlocks;
556556
size_t left = 0;
557557
size_t right = g_CLR_RT_GarbageCollector.m_relocCount;
558558

559559
while (left < right)
560560
{
561561
size_t center = (left + right) / 2;
562-
RelocationRegion &relocCurrent = relocBlocks[center];
562+
RelocationRegion const &relocCurrent = relocBlocks[center];
563563

564564
if (dst < relocCurrent.m_start)
565565
{

0 commit comments

Comments
 (0)