Index: Source/modules/speech/SpeechRecognitionResult.h |
diff --git a/Source/modules/speech/SpeechRecognitionResult.h b/Source/modules/speech/SpeechRecognitionResult.h |
index 3d936df2f46809b9a1618abcf666ee1eb9fd4910..66640f3aab3ee3a0c2d1393ef8d3176d1f32b24a 100644 |
--- a/Source/modules/speech/SpeechRecognitionResult.h |
+++ b/Source/modules/speech/SpeechRecognitionResult.h |
@@ -29,13 +29,18 @@ |
#include "bindings/v8/ScriptWrappable.h" |
#include "modules/speech/SpeechRecognitionAlternative.h" |
#include "platform/heap/Handle.h" |
+#include "wtf/RefCounted.h" |
+#include "wtf/Vector.h" |
namespace WebCore { |
-class SpeechRecognitionResult FINAL : public GarbageCollectedFinalized<SpeechRecognitionResult>, public ScriptWrappable { |
+// FIXME: oilpan: the platform outer layer (WebSpeechRecognitionResult) depends on |
+// holding a WebPrivatePtr (a RefPtr) to this result object. When/if such pointers |
+// can be to GCed objects, we can drop the extra reference counting layer. |
+class SpeechRecognitionResult : public RefCountedWillBeGarbageCollectedFinalized<SpeechRecognitionResult>, public ScriptWrappable { |
public: |
~SpeechRecognitionResult(); |
- static SpeechRecognitionResult* create(const HeapVector<Member<SpeechRecognitionAlternative> >&, bool final); |
+ static PassRefPtrWillBeRawPtr<SpeechRecognitionResult> create(const WillBeHeapVector<RefPtrWillBeMember<SpeechRecognitionAlternative> >&, bool final); |
unsigned long length() { return m_alternatives.size(); } |
SpeechRecognitionAlternative* item(unsigned long index); |
@@ -44,10 +49,10 @@ |
void trace(Visitor*); |
private: |
- SpeechRecognitionResult(const HeapVector<Member<SpeechRecognitionAlternative> >&, bool final); |
+ SpeechRecognitionResult(const WillBeHeapVector<RefPtrWillBeMember<SpeechRecognitionAlternative> >&, bool final); |
bool m_final; |
- HeapVector<Member<SpeechRecognitionAlternative> > m_alternatives; |
+ WillBeHeapVector<RefPtrWillBeMember<SpeechRecognitionAlternative> > m_alternatives; |
}; |
} // namespace WebCore |