initial commit, 4.5 stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
This commit is contained in:
13
thirdparty/thorvg/patches/0001-revert-tvglines-bezier-precision.patch
vendored
Normal file
13
thirdparty/thorvg/patches/0001-revert-tvglines-bezier-precision.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/thirdparty/thorvg/src/common/tvgMath.cpp b/thirdparty/thorvg/src/common/tvgMath.cpp
|
||||
index cb7f24ff40..f27f69faeb 100644
|
||||
--- a/thirdparty/thorvg/src/common/tvgMath.cpp
|
||||
+++ b/thirdparty/thorvg/src/common/tvgMath.cpp
|
||||
@@ -79,7 +79,7 @@ float _bezAt(const Bezier& bz, float at, float length, LengthFunc lineLengthFunc
|
||||
Bezier left;
|
||||
right.split(t, left);
|
||||
length = _bezLength(left, lineLengthFunc);
|
||||
- if (fabsf(length - at) < BEZIER_EPSILON || fabsf(smallest - biggest) < 1e-3f) {
|
||||
+ if (fabsf(length - at) < BEZIER_EPSILON || fabsf(smallest - biggest) < BEZIER_EPSILON) {
|
||||
break;
|
||||
}
|
||||
if (length < at) {
|
44
thirdparty/thorvg/patches/0002-use-heap-alloc.patch
vendored
Normal file
44
thirdparty/thorvg/patches/0002-use-heap-alloc.patch
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
diff --git a/thirdparty/thorvg/src/loaders/svg/tvgXmlParser.cpp b/thirdparty/thorvg/src/loaders/svg/tvgXmlParser.cpp
|
||||
index 81d5c098a2..4c0a0f53db 100644
|
||||
--- a/thirdparty/thorvg/src/loaders/svg/tvgXmlParser.cpp
|
||||
+++ b/thirdparty/thorvg/src/loaders/svg/tvgXmlParser.cpp
|
||||
@@ -475,11 +475,14 @@ bool simpleXmlParseW3CAttribute(const char* buf, unsigned bufLength, simpleXMLAt
|
||||
if (!buf) return false;
|
||||
|
||||
end = buf + bufLength;
|
||||
- key = (char*)alloca(end - buf + 1);
|
||||
- val = (char*)alloca(end - buf + 1);
|
||||
|
||||
if (buf == end) return true;
|
||||
|
||||
+ char* key_buf = (char*)malloc(end - buf + 1);
|
||||
+ char* val_buf = (char*)malloc(end - buf + 1);
|
||||
+
|
||||
+ key = key_buf;
|
||||
+ val = val_buf;
|
||||
do {
|
||||
char* sep = (char*)strchr(buf, ':');
|
||||
next = (char*)strchr(buf, ';');
|
||||
@@ -487,7 +490,11 @@ bool simpleXmlParseW3CAttribute(const char* buf, unsigned bufLength, simpleXMLAt
|
||||
if (auto src = strstr(buf, "src")) {//src tag from css font-face contains extra semicolon
|
||||
if (src < sep) {
|
||||
if (next + 1 < end) next = (char*)strchr(next + 1, ';');
|
||||
- else return true;
|
||||
+ else {
|
||||
+ free(key_buf);
|
||||
+ free(val_buf);
|
||||
+ return true;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,6 +541,9 @@ bool simpleXmlParseW3CAttribute(const char* buf, unsigned bufLength, simpleXMLAt
|
||||
buf = next + 1;
|
||||
} while (true);
|
||||
|
||||
+ free(key_buf);
|
||||
+ free(val_buf);
|
||||
+
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user