Ignore:
Timestamp:
Nov 18, 2002, 10:20:58 PM (23 years ago)
Author:
mjs
Message:

Change List to completely avoid going through the GC
allocator. 3.6% performance improvement on JavaScript iBench.

  • kjs/internal.cpp: (InterpreterImp::mark): Don't mark the empty list.

For all the methods below I basically lifted the ListImp version
up to the List method with minor tweaks.

  • kjs/types.cpp: (ListIterator::ListIterator): (List::List): (List::operator=): (List::~List): (List::mark): (List::append): (List::prepend): (List::appendList): (List::prependList): (List::removeFirst): (List::removeLast): (List::remove): (List::clear): (List::clearInternal): (List::copy): (List::begin): (List::end): (List::isEmpty): (List::size): (List::at): (List::operator[]): (List::empty): (List::erase): (List::refAll): (List::derefAll): (List::swap): (List::globalClear):
  • kjs/types.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/internal.cpp

    r2741 r2748  
    668668  if (BooleanImp::staticFalse && !BooleanImp::staticFalse->marked())
    669669    BooleanImp::staticFalse->mark();
    670   List::markEmptyList();
    671670  //fprintf( stderr, "InterpreterImp::mark this=%p global.imp()=%p\n", this, global.imp() );
    672671  if (global.imp())
Note: See TracChangeset for help on using the changeset viewer.