소스 검색

LibJS: Convert Intl::SegmentIterator::create() to NonnullGCPtr

Linus Groh 2 년 전
부모
커밋
df589bb05b
2개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 2 2
      Userland/Libraries/LibJS/Runtime/Intl/SegmentIterator.cpp
  2. 1 1
      Userland/Libraries/LibJS/Runtime/Intl/SegmentIterator.h

+ 2 - 2
Userland/Libraries/LibJS/Runtime/Intl/SegmentIterator.cpp

@@ -11,7 +11,7 @@
 namespace JS::Intl {
 namespace JS::Intl {
 
 
 // 18.6.1 CreateSegmentIterator ( segmenter, string ), https://tc39.es/ecma402/#sec-createsegmentsobject
 // 18.6.1 CreateSegmentIterator ( segmenter, string ), https://tc39.es/ecma402/#sec-createsegmentsobject
-SegmentIterator* SegmentIterator::create(Realm& realm, Segmenter& segmenter, Utf16View const& string, Segments const& segments)
+NonnullGCPtr<SegmentIterator> SegmentIterator::create(Realm& realm, Segmenter& segmenter, Utf16View const& string, Segments const& segments)
 {
 {
     // 1. Let internalSlotsList be « [[IteratingSegmenter]], [[IteratedString]], [[IteratedStringNextSegmentCodeUnitIndex]] ».
     // 1. Let internalSlotsList be « [[IteratingSegmenter]], [[IteratedString]], [[IteratedStringNextSegmentCodeUnitIndex]] ».
     // 2. Let iterator be OrdinaryObjectCreate(%SegmentIteratorPrototype%, internalSlotsList).
     // 2. Let iterator be OrdinaryObjectCreate(%SegmentIteratorPrototype%, internalSlotsList).
@@ -19,7 +19,7 @@ SegmentIterator* SegmentIterator::create(Realm& realm, Segmenter& segmenter, Utf
     // 4. Set iterator.[[IteratedString]] to string.
     // 4. Set iterator.[[IteratedString]] to string.
     // 5. Set iterator.[[IteratedStringNextSegmentCodeUnitIndex]] to 0.
     // 5. Set iterator.[[IteratedStringNextSegmentCodeUnitIndex]] to 0.
     // 6. Return iterator.
     // 6. Return iterator.
-    return realm.heap().allocate<SegmentIterator>(realm, realm, segmenter, move(string), segments);
+    return *realm.heap().allocate<SegmentIterator>(realm, realm, segmenter, move(string), segments);
 }
 }
 
 
 // 18.6 Segment Iterator Objects, https://tc39.es/ecma402/#sec-segment-iterator-objects
 // 18.6 Segment Iterator Objects, https://tc39.es/ecma402/#sec-segment-iterator-objects

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Intl/SegmentIterator.h

@@ -16,7 +16,7 @@ class SegmentIterator final : public Object {
     JS_OBJECT(SegmentIterator, Object);
     JS_OBJECT(SegmentIterator, Object);
 
 
 public:
 public:
-    static SegmentIterator* create(Realm&, Segmenter&, Utf16View const&, Segments const&);
+    static NonnullGCPtr<SegmentIterator> create(Realm&, Segmenter&, Utf16View const&, Segments const&);
 
 
     virtual ~SegmentIterator() override = default;
     virtual ~SegmentIterator() override = default;