diff options
author | WasabiRaptor <ketchupraptor@gmail.com> | 2025-05-25 13:24:44 -0400 |
---|---|---|
committer | WasabiRaptor <ketchupraptor@gmail.com> | 2025-05-25 13:24:44 -0400 |
commit | 59854f015602b791b51c20a008e78aaed68d20b9 (patch) | |
tree | 7b2f17dc60ad192fddec182f982f6feb5781eddd /source/core | |
parent | 96b86c63fd168df1a8463f184932d1b39c4284ec (diff) | |
parent | 1eac38c5526f6d4deee811e9995ed5579cdda46c (diff) |
Merge branch 'main' into networked-animator-improvements
Diffstat (limited to 'source/core')
-rw-r--r-- | source/core/StarLua.cpp | 2 | ||||
-rw-r--r-- | source/core/StarStringView.cpp | 17 |
2 files changed, 12 insertions, 7 deletions
diff --git a/source/core/StarLua.cpp b/source/core/StarLua.cpp index 201f238..b70fe59 100644 --- a/source/core/StarLua.cpp +++ b/source/core/StarLua.cpp @@ -319,7 +319,7 @@ LuaEnginePtr LuaEngine::create(bool safe) { luaL_requiref(self->m_state, "os", luaopen_os, true); if (safe) { - StringSet osWhitelist = {"clock", "difftime", "time"}; + StringSet osWhitelist = {"clock", "difftime", "time", "date"}; lua_pushnil(self->m_state); while (lua_next(self->m_state, -2) != 0) { diff --git a/source/core/StarStringView.cpp b/source/core/StarStringView.cpp index 2bc9cd5..535d350 100644 --- a/source/core/StarStringView.cpp +++ b/source/core/StarStringView.cpp @@ -113,8 +113,11 @@ bool StringView::beginsWith(StringView beg, CaseSensitivity cs) const { auto it = begin(); auto itEnd = end(); for (size_t i = 0; i != begSize; ++i) - if (it++ == itEnd) + { + if (it == itEnd) return false; + it++; + } return compare(0, begSize, beg, 0, NPos, cs) == 0; } @@ -352,18 +355,20 @@ StringView StringView::substr(size_t position, size_t n) const { auto it = begin(); for (size_t i = 0; i != position; ++i) { - if (it++ == itEnd) + if (it == itEnd) throw OutOfRangeException(strf("out of range in StringView::substr({}, {})", position, n)); + it++; } - const char* start = &*it.base(); + const auto itStart = it; for (size_t i = 0; i != n; ++i) { - if (it++ == itEnd) - return StringView(start, &*it.base() - start - 1); + if (it == itEnd) + break; + ++it; } - return StringView(start, &*it.base() - start); + return StringView(&*itStart.base(), it.base() - itStart.base()); } int StringView::compare(size_t selfOffset, size_t selfLen, StringView other, |