Ignore:
Timestamp:
Aug 30, 2012, 1:50:40 PM (13 years ago)
Author:
[email protected]
Message:

[BlackBerry] Implement IncrementalSweeper for PLATFORM(BLACKBERRY)
https://bugs.webkit.org/show_bug.cgi?id=95469

Reviewed by Rob Buis.

RIM PR# 200595.
Share most code with USE(CF) and implement timer-related methods
for PLATFORM(BLACKBERRY).

  • heap/IncrementalSweeper.cpp:

(JSC):
(JSC::IncrementalSweeper::IncrementalSweeper):
(JSC::IncrementalSweeper::create):
(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::cancelTimer):
(JSC::IncrementalSweeper::doSweep):

  • heap/IncrementalSweeper.h:

(IncrementalSweeper):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/IncrementalSweeper.cpp

    r124352 r127185  
    3838namespace JSC {
    3939
     40#if USE(CF) || PLATFORM(BLACKBERRY)
     41
     42static const double sweepTimeSlice = .01; // seconds
     43static const double sweepTimeTotal = .10;
     44static const double sweepTimeMultiplier = 1.0 / sweepTimeTotal;
     45
    4046#if USE(CF)
    41 
    42 static const CFTimeInterval sweepTimeSlice = .01; // seconds
    43 static const CFTimeInterval sweepTimeTotal = .10;
    44 static const CFTimeInterval sweepTimeMultiplier = 1.0 / sweepTimeTotal;
    45 
    46 void IncrementalSweeper::doWork()
    47 {
    48     doSweep(WTF::monotonicallyIncreasingTime());
    49 }
    5047   
    5148IncrementalSweeper::IncrementalSweeper(Heap* heap, CFRunLoopRef runLoop)
     
    7168}
    7269
     70#elif PLATFORM(BLACKBERRY)
     71   
     72IncrementalSweeper::IncrementalSweeper(Heap* heap)
     73    : HeapTimer(heap->globalData())
     74    , m_currentBlockToSweepIndex(0)
     75    , m_structuresCanBeSwept(false)
     76{
     77}
     78
     79IncrementalSweeper* IncrementalSweeper::create(Heap* heap)
     80{
     81    return new IncrementalSweeper(heap);
     82}
     83
     84void IncrementalSweeper::scheduleTimer()
     85{
     86    m_timer.start(sweepTimeSlice * sweepTimeMultiplier);
     87}
     88
     89void IncrementalSweeper::cancelTimer()
     90{
     91    m_timer.stop();
     92}
     93
     94#endif
     95
     96void IncrementalSweeper::doWork()
     97{
     98    doSweep(WTF::monotonicallyIncreasingTime());
     99}
     100
    73101void IncrementalSweeper::doSweep(double sweepBeginTime)
    74102{
     
    76104        sweepNextBlock();
    77105
    78         CFTimeInterval elapsedTime = WTF::monotonicallyIncreasingTime() - sweepBeginTime;
     106        double elapsedTime = WTF::monotonicallyIncreasingTime() - sweepBeginTime;
    79107        if (elapsedTime < sweepTimeSlice)
    80108            continue;
Note: See TracChangeset for help on using the changeset viewer.