]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - profiler/ProfilerCompilation.h
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / profiler / ProfilerCompilation.h
index b3183fa025b7ecd952393eae2bbe59655da49991..b358b659c080b476d741bd6d3891c4cd708a380a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -31,6 +31,7 @@
 #include "ProfilerCompilationKind.h"
 #include "ProfilerCompiledBytecode.h"
 #include "ProfilerExecutionCounter.h"
+#include "ProfilerJettisonReason.h"
 #include "ProfilerOSRExit.h"
 #include "ProfilerOSRExitSite.h"
 #include "ProfilerOriginStack.h"
 #include <wtf/RefCounted.h>
 #include <wtf/SegmentedVector.h>
 
-namespace JSC { namespace Profiler {
+namespace JSC {
+
+class FireDetail;
+
+namespace Profiler {
 
 class Bytecodes;
 class Database;
@@ -63,18 +68,23 @@ public:
     CompilationKind kind() const { return m_kind; }
     
     void addDescription(const CompiledBytecode&);
+    void addDescription(const OriginStack&, const CString& description);
     ExecutionCounter* executionCounterFor(const OriginStack&);
     void addOSRExitSite(const Vector<const void*>& codeAddresses);
     OSRExit* addOSRExit(unsigned id, const OriginStack&, ExitKind, bool isWatchpoint);
     
+    void setJettisonReason(JettisonReason, const FireDetail*);
+    
     JSValue toJS(ExecState*) const;
     
 private:
     Bytecodes* m_bytecodes;
     CompilationKind m_kind;
+    JettisonReason m_jettisonReason;
+    CString m_additionalJettisonReason;
     Vector<ProfiledBytecodes> m_profiledBytecodes;
     Vector<CompiledBytecode> m_descriptions;
-    HashMap<OriginStack, OwnPtr<ExecutionCounter> > m_counters;
+    HashMap<OriginStack, std::unique_ptr<ExecutionCounter>> m_counters;
     Vector<OSRExitSite> m_osrExitSites;
     SegmentedVector<OSRExit> m_osrExits;
     unsigned m_numInlinedGetByIds;