소스 검색

Shell: Use NonnullRefPtr to simplify some things in the parser/AST

Andreas Kling 5 년 전
부모
커밋
3cb8ae873c
4개의 변경된 파일12개의 추가작업 그리고 12개의 파일을 삭제
  1. 5 5
      Shell/AST.cpp
  2. 5 5
      Shell/AST.h
  3. 1 1
      Shell/Parser.cpp
  4. 1 1
      Shell/Parser.h

+ 5 - 5
Shell/AST.cpp

@@ -2041,24 +2041,24 @@ Vector<String> TildeValue::resolve_as_list(RefPtr<Shell> shell)
     return { shell->expand_tilde(builder.to_string()) };
     return { shell->expand_tilde(builder.to_string()) };
 }
 }
 
 
-Result<RefPtr<Rewiring>, String> CloseRedirection::apply() const
+Result<NonnullRefPtr<Rewiring>, String> CloseRedirection::apply() const
 {
 {
-    return static_cast<RefPtr<Rewiring>>((adopt(*new Rewiring(fd, fd, Rewiring::Close::ImmediatelyCloseDestination))));
+    return adopt(*new Rewiring(fd, fd, Rewiring::Close::ImmediatelyCloseDestination));
 }
 }
 
 
 CloseRedirection::~CloseRedirection()
 CloseRedirection::~CloseRedirection()
 {
 {
 }
 }
 
 
-Result<RefPtr<Rewiring>, String> PathRedirection::apply() const
+Result<NonnullRefPtr<Rewiring>, String> PathRedirection::apply() const
 {
 {
-    auto check_fd_and_return = [my_fd = this->fd](int fd, const String& path) -> Result<RefPtr<Rewiring>, String> {
+    auto check_fd_and_return = [my_fd = this->fd](int fd, const String& path) -> Result<NonnullRefPtr<Rewiring>, String> {
         if (fd < 0) {
         if (fd < 0) {
             String error = strerror(errno);
             String error = strerror(errno);
             dbg() << "open() failed for '" << path << "' with " << error;
             dbg() << "open() failed for '" << path << "' with " << error;
             return error;
             return error;
         }
         }
-        return static_cast<RefPtr<Rewiring>>((adopt(*new Rewiring(my_fd, fd, Rewiring::Close::Destination))));
+        return adopt(*new Rewiring(my_fd, fd, Rewiring::Close::Destination));
     };
     };
     switch (direction) {
     switch (direction) {
     case AST::PathRedirection::WriteAppend:
     case AST::PathRedirection::WriteAppend:

+ 5 - 5
Shell/AST.h

@@ -78,7 +78,7 @@ struct Rewiring : public RefCounted<Rewiring> {
 };
 };
 
 
 struct Redirection : public RefCounted<Redirection> {
 struct Redirection : public RefCounted<Redirection> {
-    virtual Result<RefPtr<Rewiring>, String> apply() const = 0;
+    virtual Result<NonnullRefPtr<Rewiring>, String> apply() const = 0;
     virtual ~Redirection();
     virtual ~Redirection();
     virtual bool is_path_redirection() const { return false; }
     virtual bool is_path_redirection() const { return false; }
     virtual bool is_fd_redirection() const { return false; }
     virtual bool is_fd_redirection() const { return false; }
@@ -88,7 +88,7 @@ struct Redirection : public RefCounted<Redirection> {
 struct CloseRedirection : public Redirection {
 struct CloseRedirection : public Redirection {
     int fd { -1 };
     int fd { -1 };
 
 
-    virtual Result<RefPtr<Rewiring>, String> apply() const override;
+    virtual Result<NonnullRefPtr<Rewiring>, String> apply() const override;
     virtual ~CloseRedirection();
     virtual ~CloseRedirection();
     CloseRedirection(int fd)
     CloseRedirection(int fd)
         : fd(fd)
         : fd(fd)
@@ -109,7 +109,7 @@ struct PathRedirection : public Redirection {
         ReadWrite,
         ReadWrite,
     } direction { Read };
     } direction { Read };
 
 
-    virtual Result<RefPtr<Rewiring>, String> apply() const override;
+    virtual Result<NonnullRefPtr<Rewiring>, String> apply() const override;
     virtual ~PathRedirection();
     virtual ~PathRedirection();
     PathRedirection(String path, int fd, decltype(direction) direction)
     PathRedirection(String path, int fd, decltype(direction) direction)
         : path(move(path))
         : path(move(path))
@@ -123,9 +123,9 @@ private:
 };
 };
 
 
 struct FdRedirection : public Redirection {
 struct FdRedirection : public Redirection {
-    virtual Result<RefPtr<Rewiring>, String> apply() const override
+    virtual Result<NonnullRefPtr<Rewiring>, String> apply() const override
     {
     {
-        return RefPtr<Rewiring>(adopt(*new Rewiring(source_fd, dest_fd, other_pipe_end, action)));
+        return adopt(*new Rewiring(source_fd, dest_fd, other_pipe_end, action));
     }
     }
     virtual ~FdRedirection();
     virtual ~FdRedirection();
     FdRedirection(int source, int dest, Rewiring::Close close)
     FdRedirection(int source, int dest, Rewiring::Close close)

+ 1 - 1
Shell/Parser.cpp

@@ -72,7 +72,7 @@ bool Parser::expect(const StringView& expected)
 }
 }
 
 
 template<typename A, typename... Args>
 template<typename A, typename... Args>
-RefPtr<A> Parser::create(Args... args)
+NonnullRefPtr<A> Parser::create(Args... args)
 {
 {
     return adopt(*new A(AST::Position { m_rule_start_offsets.last(), m_offset }, args...));
     return adopt(*new A(AST::Position { m_rule_start_offsets.last(), m_offset }, args...));
 }
 }

+ 1 - 1
Shell/Parser.h

@@ -65,7 +65,7 @@ private:
     RefPtr<AST::Node> parse_glob();
     RefPtr<AST::Node> parse_glob();
 
 
     template<typename A, typename... Args>
     template<typename A, typename... Args>
-    RefPtr<A> create(Args... args);
+    NonnullRefPtr<A> create(Args... args);
 
 
     bool at_end() const { return m_input.length() <= m_offset; }
     bool at_end() const { return m_input.length() <= m_offset; }
     char peek();
     char peek();