pxt-common-packages 10.0.1 → 10.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/libs/base/buffer.cpp +4 -4
- package/libs/base/core.cpp +4 -5
- package/package.json +1 -1
package/libs/base/buffer.cpp
CHANGED
|
@@ -54,7 +54,7 @@ int writeBuffer(Buffer buf, int dstOffset, Buffer src, int srcOffset = 0, int le
|
|
|
54
54
|
if (srcOffset < 0 || dstOffset < 0 || dstOffset > buf->length)
|
|
55
55
|
return -1;
|
|
56
56
|
|
|
57
|
-
length =
|
|
57
|
+
length = min(src->length - srcOffset, buf->length - dstOffset);
|
|
58
58
|
|
|
59
59
|
if (length < 0)
|
|
60
60
|
return -1;
|
|
@@ -103,7 +103,7 @@ void fill(Buffer buf, int value, int offset = 0, int length = -1) {
|
|
|
103
103
|
return; // DEVICE_INVALID_PARAMETER;
|
|
104
104
|
if (length < 0)
|
|
105
105
|
length = buf->length;
|
|
106
|
-
length =
|
|
106
|
+
length = min(length, buf->length - offset);
|
|
107
107
|
memset(buf->data + offset, value, length);
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -112,10 +112,10 @@ void fill(Buffer buf, int value, int offset = 0, int length = -1) {
|
|
|
112
112
|
*/
|
|
113
113
|
//%
|
|
114
114
|
Buffer slice(Buffer buf, int offset = 0, int length = -1) {
|
|
115
|
-
offset =
|
|
115
|
+
offset = min((int)buf->length, offset);
|
|
116
116
|
if (length < 0)
|
|
117
117
|
length = buf->length;
|
|
118
|
-
length =
|
|
118
|
+
length = min(length, buf->length - offset);
|
|
119
119
|
return mkBuffer(buf->data + offset, length);
|
|
120
120
|
}
|
|
121
121
|
|
package/libs/base/core.cpp
CHANGED
|
@@ -618,8 +618,8 @@ String substr(String s, int start, int length) {
|
|
|
618
618
|
return mkEmpty();
|
|
619
619
|
auto slen = (int)s->getLength();
|
|
620
620
|
if (start < 0)
|
|
621
|
-
start =
|
|
622
|
-
length =
|
|
621
|
+
start = max(slen + start, 0);
|
|
622
|
+
length = min(length, slen - start);
|
|
623
623
|
if (length <= 0)
|
|
624
624
|
return mkEmpty();
|
|
625
625
|
auto p = s->getUTF8DataAt(start);
|
|
@@ -1878,9 +1878,8 @@ STRING_VT(string_inline_utf8, NOOP, NOOP, 2 + p->utf8.size + 1, p->utf8.data, p-
|
|
|
1878
1878
|
utf8Len(p->utf8.data, p->utf8.size), utf8Skip(p->utf8.data, p->utf8.size, idx))
|
|
1879
1879
|
STRING_VT(string_skiplist16, NOOP, if (p->skip.list) gcMarkArray(p->skip.list), 2 * sizeof(void *),
|
|
1880
1880
|
PXT_SKIP_DATA_IND(p), p->skip.size, p->skip.length, skipLookup(p, idx, 0))
|
|
1881
|
-
STRING_VT(string_skiplist16_packed, NOOP, NOOP,
|
|
1882
|
-
|
|
1883
|
-
p->skip.size, p->skip.length, skipLookup(p, idx, 1))
|
|
1881
|
+
STRING_VT(string_skiplist16_packed, NOOP, NOOP, 2 + 2 + PXT_NUM_SKIP_ENTRIES(p) * 2 + p->skip.size + 1,
|
|
1882
|
+
PXT_SKIP_DATA_PACK(p), p->skip.size, p->skip.length, skipLookup(p, idx, 1))
|
|
1884
1883
|
STRING_VT(string_cons, fixCons(p), (gcScan((TValue)p->cons.left), gcScan((TValue)p->cons.right)),
|
|
1885
1884
|
2 * sizeof(void *), PXT_SKIP_DATA_IND(p), p->skip.size, p->skip.length,
|
|
1886
1885
|
skipLookup(p, idx, 0))
|