From 314d63ff612352e518b778dd14fc0126b338083e Mon Sep 17 00:00:00 2001 From: Orefkov Aleksander Date: Wed, 21 Apr 2021 13:51:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D0=B8=20Core.As?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/include/core_as/sstring.h | 22 +++++++++------------- src/lib/core_as/Debug/x64/core_as.exp | Bin 11441 -> 11441 bytes src/lib/core_as/Debug/x64/core_as.lib | Bin 19228 -> 19228 bytes src/lib/core_as/Debug/x86/core_as.exp | Bin 11193 -> 11193 bytes src/lib/core_as/Debug/x86/core_as.lib | Bin 18802 -> 18802 bytes src/lib/core_as/Release/x64/core_as.exp | Bin 11443 -> 11443 bytes src/lib/core_as/Release/x64/core_as.lib | Bin 19228 -> 19228 bytes src/lib/core_as/Release/x86/core_as.exp | Bin 11195 -> 11195 bytes src/lib/core_as/Release/x86/core_as.lib | Bin 18802 -> 18802 bytes src/modules/starter/src/main.as | 1 - 10 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/include/core_as/sstring.h b/src/include/core_as/sstring.h index add337b..947a90d 100644 --- a/src/include/core_as/sstring.h +++ b/src/include/core_as/sstring.h @@ -271,9 +271,10 @@ class str_algs { // Сравнение ascii строк без учёта регистра int compareia(SimpleStr text) const noexcept { - if (!text.length()) + uint otherLen = text.length(); + if (!otherLen) return _isEmpty() ? 0 : 1; - uint myLen = _len(), checkLen = min(myLen, text.length()); + uint myLen = _len(), checkLen = min(myLen, otherLen); const uns_type* ptr1 = reinterpret_cast(_str()), * ptr2 = reinterpret_cast(text.c_str()); while (checkLen--) { uns_type s1 = *ptr1++, s2 = *ptr2++; @@ -286,11 +287,11 @@ class str_algs { else if (s1 < s2) return -1; } - return myLen == text.length() ? 0 : myLen > text.length() ? 1 : -1; + return myLen == otherLen ? 0 : myLen > otherLen ? 1 : -1; } bool isEqualia(SimpleStr text) const noexcept { - return text.length() == _len() && (text.length() == 0 || compareia(text) == 0); + return text.length() == _len() && compareia(text) == 0; } bool isLessia(SimpleStr text) const noexcept { @@ -304,7 +305,7 @@ class str_algs { } bool isEqualiu(SimpleStr text) const noexcept { - return text.length() == _len() && (text.length() == 0 || compareiu(text) == 0); + return text.length() == _len() && compareiu(text) == 0; } bool isLessiu(SimpleStr text) const noexcept { @@ -1671,7 +1672,7 @@ template struct expr_lstr; * При этом, если планируется потом результат переместить в sstring, то для динамического буфера * выделяется +8 байтов, чтобы потом не двигать данные. * Так как у класса несколько базовых классов, ms компилятор не применяет автоматом empty base optimization, -* и без явного указания - вставит в начало класса пустые байты, сдвинув поле size на 4 байте. +* и без явного указания - вставит в начало класса пустые байты, сдвинув поле size на 4 байта. * Укажем ему явно */ template @@ -1770,11 +1771,7 @@ class empty_bases lstring : traits::copy(reserve(len), other.c_str(), len + 1); } - template, int> = 0> - lstring(const Op& op) { - this->operator<<(op); - } - template, int> = 0> + template || is_invocable_v, int> = 0> lstring(const Op& op) { this->operator<<(op); } @@ -2367,7 +2364,6 @@ constexpr auto indexSequenceReverse(index_sequence const&) -> decltype(st template using makeIndexSequenceReverse = decltype(indexSequenceReverse(make_index_sequence{})); - template static size_t fnv_hash(const K* ptr, uint l) { size_t h = _FNV_offset_basis; @@ -2644,4 +2640,4 @@ using hashStrMapUIU = hashStrMap, streqliu) == sizeof(u8symbol*)); -constexpr const SimpleStr utf8_bom{ "\xEF\xBB\xBF", 3}; +constexpr const SimpleStrNt utf8_bom{ "\xEF\xBB\xBF", 3}; diff --git a/src/lib/core_as/Debug/x64/core_as.exp b/src/lib/core_as/Debug/x64/core_as.exp index 1fcc76554009acf61104367b25a199d882c10a5a..b8c474add4ea7c88cfda8c506766cf7592d7022d 100644 GIT binary patch delta 21 bcmdlOxiNA>hydfQ&7lH$+(7Dx^jiS{WWfmk delta 21 bcmdlOxiNA>hydfw&7lH$+(7Dx^jiS{WUdJP diff --git a/src/lib/core_as/Debug/x64/core_as.lib b/src/lib/core_as/Debug/x64/core_as.lib index 0b2938b34aa19e1715bd984f5042c0fa5203f20c..41e5d280cb1a389dc8c187373d1061bb3332f4c9 100644 GIT binary patch delta 95 zcmbO;jd9L2#tjFwSmHaaE>Aw9wSn>00gp rK=OjN^yI_3v8*l=t=`<7{9Z?XvWwmXu&m1D`MMks6`N)C|4Rb^%M>Wz delta 95 zcmbO;jd9L2#tjFwSU#_mJ3je{)&|C#lgo8ACePJ2V!XNeg0>VR%e2@RA11%k=>W?Z r0Lcs5(vuJC#mz_Kcn=j(DnRBV>j|1S*y0i7wz diff --git a/src/lib/core_as/Debug/x86/core_as.exp b/src/lib/core_as/Debug/x86/core_as.exp index 1055e1d6f16c612def7dc7c35f1383a536082c62..b4231e07e1be6e6d0547b1f2e537ce7605c4fcd9 100644 GIT binary patch delta 20 acmdlPzB7D*0OPIAi~=&;KuS(}wg3Q9>IVq` delta 20 acmdlPzB7D*0OQTgi~=&;KuS(}wg3Q9*9Qjx diff --git a/src/lib/core_as/Debug/x86/core_as.lib b/src/lib/core_as/Debug/x86/core_as.lib index 1507123901d8748c6097ef0f5205be3ea2e1e0b8..b5ac4ce1d7e27506364fce21aa93276e539354b6 100644 GIT binary patch delta 102 zcmew~iSg4U#tjvkEJ6z-zD%ys+`xEivc8VS^jiS{WlsqS delta 21 bcmdlSxjAw}m;mF=&EW!h+(7D>^jiS{WjqN7 diff --git a/src/lib/core_as/Release/x64/core_as.lib b/src/lib/core_as/Release/x64/core_as.lib index f648dd64f6da82fd4150c3d2f937d7a3eef54a28..298a9718260a50903e79b16cd1269f423bbb64c2 100644 GIT binary patch delta 95 zcmbO;jd9L2#tjFwSmHaaE>Aw9wSn>00gp rK=OjN^yI_3v8*l=t=`<7{9Z?XvWwmXu&m1D`MMks6`N)C|4Rb^%M>Wz delta 95 zcmbO;jd9L2#tjFwSU#_mJ3je{)&|C#lgo8ACePJ2V!XNeg0>VR%e2@RA11%k=>W?Z r0Lcs5(vuJC#mz_Kcn=j(DnRBV>j|1S*y0i7wz diff --git a/src/lib/core_as/Release/x86/core_as.exp b/src/lib/core_as/Release/x86/core_as.exp index b2f62e8145b201bf0bf31ef9975759646a7aa70b..824cc4ec01c82a11fa85506b7b1e8097046f6ce8 100644 GIT binary patch delta 21 bcmdlTzB_yalK|tb&CCKa+(1e}dbR)nS4jsW delta 21 bcmdlTzB_yalK|t*&CCKa+(1e}dbR)nS2hPB diff --git a/src/lib/core_as/Release/x86/core_as.lib b/src/lib/core_as/Release/x86/core_as.lib index 20ec050b0beab8e77fa827df6f8b6d4d8a3a721d..d142ddd965dac131934086a90e38418376ae61fe 100644 GIT binary patch delta 102 zcmew~iSg4U#tjvkEJ6z-zD%ys+`xEivc8VS&& args) { """); return 0; } -