ART: Initialization of RegLocation and API for GrowableArray Iterator
Two things:
- Added a default initialization for the RegLocation.
- Added a default constructor and Reset for the GrowableArray's Iterator class.
Change-Id: I74d9c584304c77add42e0d66e4037ac45b890142
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
diff --git a/compiler/dex/vreg_analysis.cc b/compiler/dex/vreg_analysis.cc
index 8769736..4be0f59 100644
--- a/compiler/dex/vreg_analysis.cc
+++ b/compiler/dex/vreg_analysis.cc
@@ -415,6 +415,7 @@
loc[i] = fresh_loc;
loc[i].s_reg_low = i;
loc[i].is_const = is_constant_v_->IsBitSet(i);
+ loc[i].wide = false;
}
/* Patch up the locations for the compiler temps */
diff --git a/compiler/utils/growable_array.h b/compiler/utils/growable_array.h
index a7d1f0e..e6c53da 100644
--- a/compiler/utils/growable_array.h
+++ b/compiler/utils/growable_array.h
@@ -50,9 +50,14 @@
: idx_(0),
g_list_(g_list) {}
+ explicit Iterator()
+ : idx_(0),
+ g_list_(nullptr) {}
+
// NOTE: returns 0/NULL when no next.
// TODO: redo to make usage consistent with other iterators.
T Next() {
+ DCHECK(g_list_ != nullptr);
if (idx_ >= g_list_->Size()) {
return 0;
} else {
@@ -64,6 +69,15 @@
idx_ = 0;
}
+ void Reset(GrowableArray* g_list) {
+ idx_ = 0;
+ g_list_ = g_list;
+ }
+
+ size_t GetIndex() const {
+ return idx_;
+ }
+
private:
size_t idx_;
GrowableArray* const g_list_;