Fix accidental transposition of partial and concurrent values.
In the event of an allocation failure a full, concurrent collection was
initiated instead of a partial, non-concurrent collection. This change
assigns the correct boolean values to that settings.
These values should be made enums to ensure this does not happen again.
Bug: 3379352
Change-Id: I9336e8f832cf02e4a74745cd475914a0c312ea4e
diff --git a/vm/alloc/Heap.c b/vm/alloc/Heap.c
index c314a31..0e563c3 100644
--- a/vm/alloc/Heap.c
+++ b/vm/alloc/Heap.c
@@ -36,8 +36,8 @@
#include <errno.h>
static const GcSpec kGcForMallocSpec = {
- false,
- true,
+ true, /* isPartial */
+ false, /* isConcurrent */
PRESERVE,
"GC_FOR_ALLOC"
};
@@ -45,8 +45,8 @@
const GcSpec *GC_FOR_MALLOC = &kGcForMallocSpec;
static const GcSpec kGcConcurrentSpec = {
- true,
- true,
+ true, /* isPartial */
+ true, /* isConcurrent */
PRESERVE,
"GC_CONCURRENT"
};
@@ -54,8 +54,8 @@
const GcSpec *GC_CONCURRENT = &kGcConcurrentSpec;
static const GcSpec kGcExplicitSpec = {
- false,
- true,
+ false, /* isPartial */
+ true, /* isConcurrent */
PRESERVE,
"GC_EXPLICIT"
};
@@ -63,8 +63,8 @@
const GcSpec *GC_EXPLICIT = &kGcExplicitSpec;
static const GcSpec kGcBeforeOomSpec = {
- false,
- false,
+ false, /* isPartial */
+ false, /* isConcurrent */
CLEAR,
"GC_BEFORE_OOM"
};