Procházet zdrojové kódy

Address SonarLint findings in FileReader class

Patrick-Christopher Mattulat před 1 rokem
rodič
revize
d79bf0a53b
2 změnil soubory, kde provedl 11 přidání a 14 odebrání
  1. 3 3
      include/ls-std/io/FileReader.hpp
  2. 8 11
      source/ls-std/io/FileReader.cpp

+ 3 - 3
include/ls-std/io/FileReader.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-17
- * Changed:         2023-02-22
+ * Changed:         2023-05-16
  *
  * */
 
@@ -21,11 +21,11 @@ namespace ls::std::io
   {
     public:
 
-      explicit FileReader(ls::std::io::File &_file);
+      explicit FileReader(const ls::std::io::File &_file);
       ~FileReader() noexcept override;
 
       [[nodiscard]] ls::std::core::type::byte_field read() override;
-      void reset(ls::std::io::File &_file);
+      void reset(const ls::std::io::File &_file);
 
     private:
 

+ 8 - 11
source/ls-std/io/FileReader.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-17
- * Changed:         2023-02-23
+ * Changed:         2023-05-16
  *
  * */
 
@@ -20,8 +20,9 @@ using ls::std::io::File;
 using ls::std::io::FileExistenceEvaluator;
 using ls::std::io::FileReader;
 using std::ifstream;
+using std::string;
 
-FileReader::FileReader(File &_file) : Class("FileReader"), file(_file)
+FileReader::FileReader(const File &_file) : Class("FileReader"), file(_file)
 {
   FileExistenceEvaluator{_file.getAbsoluteFilePath()}.evaluate();
 }
@@ -30,11 +31,10 @@ FileReader::~FileReader() noexcept = default;
 
 byte_field FileReader::read()
 {
-  byte_type *data;
   ifstream inputStream{this->file.getAbsoluteFilePath(), ifstream::binary};
-  int length = (int) this->file.getSize();
-  data = new byte_type[length];
-  inputStream.read(data, length);
+  auto length = (int) this->file.getSize();
+  auto data = string(length, 'x');
+  inputStream.read(data.data(), length);
 
   if (inputStream.fail())
   {
@@ -42,13 +42,10 @@ byte_field FileReader::read()
   }
 
   inputStream.close();
-  byte_field readData = byte_field{data, (size_t) this->file.getSize()};
-  delete[] data;
-
-  return readData;
+  return data;
 }
 
-void FileReader::reset(File &_file)
+void FileReader::reset(const File &_file)
 {
   FileExistenceEvaluator{_file.getAbsoluteFilePath()}.evaluate();
   this->file = _file;