equal
deleted
inserted
replaced
38 class DateInstanceData : public RefCounted<DateInstanceData> { |
38 class DateInstanceData : public RefCounted<DateInstanceData> { |
39 public: |
39 public: |
40 static PassRefPtr<DateInstanceData> create() { return adoptRef(new DateInstanceData); } |
40 static PassRefPtr<DateInstanceData> create() { return adoptRef(new DateInstanceData); } |
41 |
41 |
42 double m_gregorianDateTimeCachedForMS; |
42 double m_gregorianDateTimeCachedForMS; |
43 WTF::GregorianDateTime m_cachedGregorianDateTime; |
43 GregorianDateTime m_cachedGregorianDateTime; |
44 double m_gregorianDateTimeUTCCachedForMS; |
44 double m_gregorianDateTimeUTCCachedForMS; |
45 WTF::GregorianDateTime m_cachedGregorianDateTimeUTC; |
45 GregorianDateTime m_cachedGregorianDateTimeUTC; |
46 |
46 |
47 private: |
47 private: |
48 DateInstanceData() |
48 DateInstanceData() |
49 : m_gregorianDateTimeCachedForMS(NaN) |
49 : m_gregorianDateTimeCachedForMS(NaN) |
50 , m_gregorianDateTimeUTCCachedForMS(NaN) |
50 , m_gregorianDateTimeUTCCachedForMS(NaN) |
53 }; |
53 }; |
54 |
54 |
55 class DateInstanceCache { |
55 class DateInstanceCache { |
56 public: |
56 public: |
57 DateInstanceCache() |
57 DateInstanceCache() |
|
58 { |
|
59 reset(); |
|
60 } |
|
61 |
|
62 void reset() |
58 { |
63 { |
59 for (size_t i = 0; i < cacheSize; ++i) |
64 for (size_t i = 0; i < cacheSize; ++i) |
60 m_cache[i].key = NaN; |
65 m_cache[i].key = NaN; |
61 } |
66 } |
62 |
67 |
70 entry.value = DateInstanceData::create(); |
75 entry.value = DateInstanceData::create(); |
71 return entry.value.get(); |
76 return entry.value.get(); |
72 } |
77 } |
73 |
78 |
74 private: |
79 private: |
75 static const size_t cacheSize = 64; |
80 static const size_t cacheSize = 16; |
76 |
81 |
77 struct CacheEntry { |
82 struct CacheEntry { |
78 double key; |
83 double key; |
79 RefPtr<DateInstanceData> value; |
84 RefPtr<DateInstanceData> value; |
80 }; |
85 }; |