hotspot/src/share/vm/utilities/growableArray.hpp
changeset 38031 e0b822facc03
parent 36315 150a415079ae
child 38051 d092550d625d
equal deleted inserted replaced
38030:93f24e7b3c43 38031:e0b822facc03
   248   E top() const {
   248   E top() const {
   249     assert(_len > 0, "empty list");
   249     assert(_len > 0, "empty list");
   250     return _data[_len-1];
   250     return _data[_len-1];
   251   }
   251   }
   252 
   252 
       
   253   E last() const {
       
   254     return top();
       
   255   }
       
   256 
   253   GrowableArrayIterator<E> begin() const {
   257   GrowableArrayIterator<E> begin() const {
   254     return GrowableArrayIterator<E>(this, 0);
   258     return GrowableArrayIterator<E>(this, 0);
   255   }
   259   }
   256 
   260 
   257   GrowableArrayIterator<E> end() const {
   261   GrowableArrayIterator<E> end() const {
   359     for (int j = _len - 1; j >= idx; j--) {
   363     for (int j = _len - 1; j >= idx; j--) {
   360       _data[j + 1] = _data[j];
   364       _data[j + 1] = _data[j];
   361     }
   365     }
   362     _len++;
   366     _len++;
   363     _data[idx] = elem;
   367     _data[idx] = elem;
       
   368   }
       
   369 
       
   370   void insert_before(const int idx, const GrowableArray<E>* array) {
       
   371     assert(0 <= idx && idx <= _len, "illegal index");
       
   372     check_nesting();
       
   373     int array_len = array->length();
       
   374     int new_len = _len + array_len;
       
   375     if (new_len >= _max) grow(new_len);
       
   376 
       
   377     for (int j = _len - 1; j >= idx; j--) {
       
   378       _data[j + array_len] = _data[j];
       
   379     }
       
   380 
       
   381     for (int j = 0; j < array_len; j++) {
       
   382       _data[idx + j] = array->_data[j];
       
   383     }
       
   384 
       
   385     _len += array_len;
   364   }
   386   }
   365 
   387 
   366   void appendAll(const GrowableArray<E>* l) {
   388   void appendAll(const GrowableArray<E>* l) {
   367     for (int i = 0; i < l->_len; i++) {
   389     for (int i = 0; i < l->_len; i++) {
   368       raw_at_put_grow(_len, l->_data[i], E());
   390       raw_at_put_grow(_len, l->_data[i], E());