aboutsummaryrefslogtreecommitdiff
path: root/include/openvic-dataloader
diff options
context:
space:
mode:
author hop311 <hop3114@gmail.com>2024-01-22 17:32:18 +0100
committer hop311 <hop3114@gmail.com>2024-01-22 22:03:23 +0100
commitafbd8024110aaa80a7b94cff9a9d96e763b13916 (patch)
treeb22e63b6e247179df4069df8a0f902ed40a3471e /include/openvic-dataloader
parent59ec8275b584d4a48f7836816114d4933c655799 (diff)
Fixed BasicParser::_file_path relying on externally controlled memory
Diffstat (limited to 'include/openvic-dataloader')
-rw-r--r--include/openvic-dataloader/csv/LineObject.hpp2
-rw-r--r--include/openvic-dataloader/detail/BasicParser.hpp5
2 files changed, 5 insertions, 2 deletions
diff --git a/include/openvic-dataloader/csv/LineObject.hpp b/include/openvic-dataloader/csv/LineObject.hpp
index 6366c71..87b4d31 100644
--- a/include/openvic-dataloader/csv/LineObject.hpp
+++ b/include/openvic-dataloader/csv/LineObject.hpp
@@ -88,7 +88,7 @@ namespace ovdl::csv {
};
inline std::ostream& operator<<(std::ostream& stream, const LineObject& line) {
- static const char SEP = ';';
+ static constexpr char SEP = ';';
LineObject::position_type sep_index = 0;
for (const auto& [pos, val] : line) {
while (sep_index < pos) {
diff --git a/include/openvic-dataloader/detail/BasicParser.hpp b/include/openvic-dataloader/detail/BasicParser.hpp
index 1e2fd14..7524bb5 100644
--- a/include/openvic-dataloader/detail/BasicParser.hpp
+++ b/include/openvic-dataloader/detail/BasicParser.hpp
@@ -1,5 +1,7 @@
#pragma once
+#include <string>
+#include <string_view>
#include <vector>
#include <openvic-dataloader/ParseError.hpp>
@@ -22,13 +24,14 @@ namespace ovdl::detail {
const std::vector<ParseError>& get_errors() const;
const std::vector<ParseWarning>& get_warnings() const;
+ std::string_view get_file_path() const;
protected:
std::vector<ParseError> _errors;
std::vector<ParseWarning> _warnings;
std::reference_wrapper<std::ostream> _error_stream;
- const char* _file_path;
+ std::string _file_path;
bool _has_fatal_error = false;
};
} \ No newline at end of file