Prechádzať zdrojové kódy

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

Linus Groh 2 rokov pred
rodič
commit
237402aea9

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

@@ -11,14 +11,14 @@
 namespace JS::Intl {
 namespace JS::Intl {
 
 
 // 18.5.1 CreateSegmentsObject ( segmenter, string ), https://tc39.es/ecma402/#sec-createsegmentsobject
 // 18.5.1 CreateSegmentsObject ( segmenter, string ), https://tc39.es/ecma402/#sec-createsegmentsobject
-Segments* Segments::create(Realm& realm, Segmenter& segmenter, Utf16String string)
+NonnullGCPtr<Segments> Segments::create(Realm& realm, Segmenter& segmenter, Utf16String string)
 {
 {
     // 1. Let internalSlotsList be « [[SegmentsSegmenter]], [[SegmentsString]] ».
     // 1. Let internalSlotsList be « [[SegmentsSegmenter]], [[SegmentsString]] ».
     // 2. Let segments be OrdinaryObjectCreate(%SegmentsPrototype%, internalSlotsList).
     // 2. Let segments be OrdinaryObjectCreate(%SegmentsPrototype%, internalSlotsList).
     // 3. Set segments.[[SegmentsSegmenter]] to segmenter.
     // 3. Set segments.[[SegmentsSegmenter]] to segmenter.
     // 4. Set segments.[[SegmentsString]] to string.
     // 4. Set segments.[[SegmentsString]] to string.
     // 5. Return segments.
     // 5. Return segments.
-    return realm.heap().allocate<Segments>(realm, realm, segmenter, move(string));
+    return *realm.heap().allocate<Segments>(realm, realm, segmenter, move(string));
 }
 }
 
 
 // 18.5 Segments Objects, https://tc39.es/ecma402/#sec-segments-objects
 // 18.5 Segments Objects, https://tc39.es/ecma402/#sec-segments-objects

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

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