summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/DateInstanceCache.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/JavaScriptCore/runtime/DateInstanceCache.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/JavaScriptCore/runtime/DateInstanceCache.h')
-rw-r--r--Source/JavaScriptCore/runtime/DateInstanceCache.h94
1 files changed, 45 insertions, 49 deletions
diff --git a/Source/JavaScriptCore/runtime/DateInstanceCache.h b/Source/JavaScriptCore/runtime/DateInstanceCache.h
index 1c8c011ec..4f1c96796 100644
--- a/Source/JavaScriptCore/runtime/DateInstanceCache.h
+++ b/Source/JavaScriptCore/runtime/DateInstanceCache.h
@@ -23,72 +23,68 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef DateInstanceCache_h
-#define DateInstanceCache_h
+#pragma once
#include "JSCJSValue.h"
#include "JSDateMath.h"
#include <array>
#include <wtf/HashFunctions.h>
-#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
namespace JSC {
- class DateInstanceData : public RefCounted<DateInstanceData> {
- public:
- static PassRefPtr<DateInstanceData> create() { return adoptRef(new DateInstanceData); }
+class DateInstanceData : public RefCounted<DateInstanceData> {
+public:
+ static Ref<DateInstanceData> create() { return adoptRef(*new DateInstanceData); }
- double m_gregorianDateTimeCachedForMS;
- GregorianDateTime m_cachedGregorianDateTime;
- double m_gregorianDateTimeUTCCachedForMS;
- GregorianDateTime m_cachedGregorianDateTimeUTC;
+ double m_gregorianDateTimeCachedForMS;
+ GregorianDateTime m_cachedGregorianDateTime;
+ double m_gregorianDateTimeUTCCachedForMS;
+ GregorianDateTime m_cachedGregorianDateTimeUTC;
- private:
- DateInstanceData()
- : m_gregorianDateTimeCachedForMS(QNaN)
- , m_gregorianDateTimeUTCCachedForMS(QNaN)
- {
- }
- };
+private:
+ DateInstanceData()
+ : m_gregorianDateTimeCachedForMS(PNaN)
+ , m_gregorianDateTimeUTCCachedForMS(PNaN)
+ {
+ }
+};
- class DateInstanceCache {
- public:
- DateInstanceCache()
- {
- reset();
- }
-
- void reset()
- {
- for (size_t i = 0; i < cacheSize; ++i)
- m_cache[i].key = QNaN;
- }
-
- DateInstanceData* add(double d)
- {
- CacheEntry& entry = lookup(d);
- if (d == entry.key)
- return entry.value.get();
+class DateInstanceCache {
+public:
+ DateInstanceCache()
+ {
+ reset();
+ }
- entry.key = d;
- entry.value = DateInstanceData::create();
- return entry.value.get();
- }
+ void reset()
+ {
+ for (size_t i = 0; i < cacheSize; ++i)
+ m_cache[i].key = PNaN;
+ }
- private:
- static const size_t cacheSize = 16;
+ DateInstanceData* add(double d)
+ {
+ CacheEntry& entry = lookup(d);
+ if (d == entry.key)
+ return entry.value.get();
- struct CacheEntry {
- double key;
- RefPtr<DateInstanceData> value;
- };
+ entry.key = d;
+ entry.value = DateInstanceData::create();
+ return entry.value.get();
+ }
- CacheEntry& lookup(double d) { return m_cache[WTF::FloatHash<double>::hash(d) & (cacheSize - 1)]; }
+private:
+ static const size_t cacheSize = 16;
- std::array<CacheEntry, cacheSize> m_cache;
+ struct CacheEntry {
+ double key;
+ RefPtr<DateInstanceData> value;
};
-} // namespace JSC
+ CacheEntry& lookup(double d) { return m_cache[WTF::FloatHash<double>::hash(d) & (cacheSize - 1)]; }
+
+ std::array<CacheEntry, cacheSize> m_cache;
+};
-#endif // DateInstanceCache_h
+} // namespace JSC