mirror of
https://github.com/OpenMW/openmw.git
synced 2025-04-14 18:06:44 +00:00
Merge branch 'var_copy' into 'master'
Do not copy vector See merge request OpenMW/openmw!3401
This commit is contained in:
commit
58a3fcb972
1 changed files with 12 additions and 11 deletions
|
@ -110,18 +110,19 @@ namespace LuaUtf8
|
||||||
};
|
};
|
||||||
|
|
||||||
utf8["codes"] = [](std::string_view s) {
|
utf8["codes"] = [](std::string_view s) {
|
||||||
std::vector<int64_t> pos_byte{ 1 };
|
return sol::as_function(
|
||||||
return sol::as_function([s, pos_byte]() mutable -> sol::optional<std::pair<int64_t, int64_t>> {
|
[s, pos_byte = std::vector<int64_t>{ 1 }]() mutable -> sol::optional<std::pair<int64_t, int64_t>> {
|
||||||
if (pos_byte.back() <= static_cast<int64_t>(s.size()))
|
if (pos_byte.back() <= static_cast<int64_t>(s.size()))
|
||||||
{
|
{
|
||||||
const auto pair = decodeNextUTF8Character(s, pos_byte);
|
const auto pair = decodeNextUTF8Character(s, pos_byte);
|
||||||
if (pair.second == -1)
|
if (pair.second == -1)
|
||||||
throw std::runtime_error("Invalid UTF-8 code at position " + std::to_string(pos_byte.size()));
|
throw std::runtime_error(
|
||||||
|
"Invalid UTF-8 code at position " + std::to_string(pos_byte.size()));
|
||||||
|
|
||||||
return pair;
|
return pair;
|
||||||
}
|
}
|
||||||
return sol::nullopt;
|
return sol::nullopt;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
utf8["len"] = [](std::string_view s,
|
utf8["len"] = [](std::string_view s,
|
||||||
|
|
Loading…
Reference in a new issue