Author: [email protected]
Date: Wed Jun 17 03:55:58 2009
New Revision: 2200

Modified:
    branches/bleeding_edge/src/objects-inl.h
    branches/bleeding_edge/src/objects.cc
    branches/bleeding_edge/src/objects.h

Log:
Inline fast case of the method that ensures that an array has a
certain size.
Review URL: http://codereview.chromium.org/126265

Modified: branches/bleeding_edge/src/objects-inl.h
==============================================================================
--- branches/bleeding_edge/src/objects-inl.h    (original)
+++ branches/bleeding_edge/src/objects-inl.h    Wed Jun 17 03:55:58 2009
@@ -2639,6 +2639,13 @@
  }


+void JSArray::EnsureSize(int required_size) {
+  ASSERT(HasFastElements());
+  if (elements()->length() >= required_size) return;
+  Expand(required_size);
+}
+
+
  void JSArray::SetContent(FixedArray* storage) {
    set_length(Smi::FromInt(storage->length()), SKIP_WRITE_BARRIER);
    set_elements(storage);

Modified: branches/bleeding_edge/src/objects.cc
==============================================================================
--- branches/bleeding_edge/src/objects.cc       (original)
+++ branches/bleeding_edge/src/objects.cc       Wed Jun 17 03:55:58 2009
@@ -4977,10 +4977,8 @@
  }


-void JSArray::EnsureSize(int required_size) {
+void JSArray::Expand(int required_size) {
    Handle<JSArray> self(this);
-  ASSERT(HasFastElements());
-  if (elements()->length() >= required_size) return;
    Handle<FixedArray> old_backing(elements());
    int old_size = old_backing->length();
    // Doubling in size would be overkill, but leave some slack to avoid

Modified: branches/bleeding_edge/src/objects.h
==============================================================================
--- branches/bleeding_edge/src/objects.h        (original)
+++ branches/bleeding_edge/src/objects.h        Wed Jun 17 03:55:58 2009
@@ -3982,7 +3982,7 @@

    // Uses handles.  Ensures that the fixed array backing the JSArray has at
    // least the stated size.
-  void EnsureSize(int minimum_size_of_backing_fixed_array);
+  inline void EnsureSize(int minimum_size_of_backing_fixed_array);

    // Dispatched behavior.
  #ifdef DEBUG
@@ -3995,6 +3995,10 @@
    static const int kSize = kLengthOffset + kPointerSize;

   private:
+  // Expand the fixed array backing of a fast-case JSArray to at least
+  // the requested size.
+  void Expand(int minimum_size_of_backing_fixed_array);
+
    DISALLOW_IMPLICIT_CONSTRUCTORS(JSArray);
  };


--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to