Explorar el Código

LibRegex: Avoid copying MatchInput when getting argument descriptions

Ali Mohammad Pur hace 2 años
padre
commit
464ac85a1b

+ 2 - 2
Userland/Libraries/LibRegex/RegexByteCode.cpp

@@ -927,12 +927,12 @@ Vector<CompareTypeAndValuePair> OpCode_Compare::flat_compares() const
     return result;
 }
 
-Vector<String> OpCode_Compare::variable_arguments_to_string(Optional<MatchInput> input) const
+Vector<String> OpCode_Compare::variable_arguments_to_string(Optional<MatchInput const&> input) const
 {
     Vector<String> result;
 
     size_t offset { state().instruction_position + 3 };
-    RegexStringView view = ((input.has_value()) ? input.value().view : StringView {});
+    RegexStringView const& view = ((input.has_value()) ? input.value().view : StringView {});
 
     for (size_t i = 0; i < arguments_count(); ++i) {
         auto compare_type = (CharacterCompareType)m_bytecode->at(offset++);

+ 1 - 1
Userland/Libraries/LibRegex/RegexByteCode.h

@@ -746,7 +746,7 @@ public:
     ALWAYS_INLINE size_t arguments_count() const { return argument(0); }
     ALWAYS_INLINE size_t arguments_size() const { return argument(1); }
     String arguments_string() const override;
-    Vector<String> variable_arguments_to_string(Optional<MatchInput> input = {}) const;
+    Vector<String> variable_arguments_to_string(Optional<MatchInput const&> input = {}) const;
     Vector<CompareTypeAndValuePair> flat_compares() const;
     static bool matches_character_class(CharClass, u32, bool insensitive);