Allocate JNI assembler labels with `ArenaAllocator`. am: bbaf214b13
Original change: https://android-review.googlesource.com/c/platform/art/+/2969537
Change-Id: Ibcca704f07ff6fb23d432db25fc1e2a3ae13e5d9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc b/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc
index 9930e39..6844b1e 100644
--- a/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc
+++ b/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc
@@ -1003,7 +1003,7 @@
}
std::unique_ptr<JNIMacroLabel> ArmVIXLJNIMacroAssembler::CreateLabel() {
- return std::unique_ptr<JNIMacroLabel>(new ArmVIXLJNIMacroLabel());
+ return std::unique_ptr<JNIMacroLabel>(new (asm_.GetAllocator()) ArmVIXLJNIMacroLabel());
}
void ArmVIXLJNIMacroAssembler::Jump(JNIMacroLabel* label) {
diff --git a/compiler/utils/arm64/jni_macro_assembler_arm64.cc b/compiler/utils/arm64/jni_macro_assembler_arm64.cc
index 2d1c003..50f6b41 100644
--- a/compiler/utils/arm64/jni_macro_assembler_arm64.cc
+++ b/compiler/utils/arm64/jni_macro_assembler_arm64.cc
@@ -799,7 +799,7 @@
}
std::unique_ptr<JNIMacroLabel> Arm64JNIMacroAssembler::CreateLabel() {
- return std::unique_ptr<JNIMacroLabel>(new Arm64JNIMacroLabel());
+ return std::unique_ptr<JNIMacroLabel>(new (asm_.GetAllocator()) Arm64JNIMacroLabel());
}
void Arm64JNIMacroAssembler::Jump(JNIMacroLabel* label) {
diff --git a/compiler/utils/jni_macro_assembler.h b/compiler/utils/jni_macro_assembler.h
index 9d32071..0ffa50a 100644
--- a/compiler/utils/jni_macro_assembler.h
+++ b/compiler/utils/jni_macro_assembler.h
@@ -261,7 +261,7 @@
//
// It is only safe to use a label created
// via JNIMacroAssembler::CreateLabel with that same macro assembler.
-class JNIMacroLabel {
+class JNIMacroLabel : public DeletableArenaObject<kArenaAllocAssembler> {
public:
virtual ~JNIMacroLabel() = 0;
diff --git a/compiler/utils/riscv64/jni_macro_assembler_riscv64.cc b/compiler/utils/riscv64/jni_macro_assembler_riscv64.cc
index 9d3a29d..00e1f54 100644
--- a/compiler/utils/riscv64/jni_macro_assembler_riscv64.cc
+++ b/compiler/utils/riscv64/jni_macro_assembler_riscv64.cc
@@ -548,7 +548,7 @@
}
std::unique_ptr<JNIMacroLabel> Riscv64JNIMacroAssembler::CreateLabel() {
- return std::unique_ptr<JNIMacroLabel>(new Riscv64JNIMacroLabel());
+ return std::unique_ptr<JNIMacroLabel>(new (asm_.GetAllocator()) Riscv64JNIMacroLabel());
}
void Riscv64JNIMacroAssembler::Jump(JNIMacroLabel* label) {
diff --git a/compiler/utils/x86/jni_macro_assembler_x86.cc b/compiler/utils/x86/jni_macro_assembler_x86.cc
index dfdbc18..3ee0530 100644
--- a/compiler/utils/x86/jni_macro_assembler_x86.cc
+++ b/compiler/utils/x86/jni_macro_assembler_x86.cc
@@ -542,7 +542,7 @@
}
std::unique_ptr<JNIMacroLabel> X86JNIMacroAssembler::CreateLabel() {
- return std::unique_ptr<JNIMacroLabel>(new X86JNIMacroLabel());
+ return std::unique_ptr<JNIMacroLabel>(new (asm_.GetAllocator()) X86JNIMacroLabel());
}
void X86JNIMacroAssembler::Jump(JNIMacroLabel* label) {
diff --git a/compiler/utils/x86_64/jni_macro_assembler_x86_64.cc b/compiler/utils/x86_64/jni_macro_assembler_x86_64.cc
index e9e6dbd..1b9cfa6 100644
--- a/compiler/utils/x86_64/jni_macro_assembler_x86_64.cc
+++ b/compiler/utils/x86_64/jni_macro_assembler_x86_64.cc
@@ -610,7 +610,7 @@
}
std::unique_ptr<JNIMacroLabel> X86_64JNIMacroAssembler::CreateLabel() {
- return std::unique_ptr<JNIMacroLabel>(new X86_64JNIMacroLabel());
+ return std::unique_ptr<JNIMacroLabel>(new (asm_.GetAllocator()) X86_64JNIMacroLabel());
}
void X86_64JNIMacroAssembler::Jump(JNIMacroLabel* label) {