[Libreoffice-commits] core.git: external/graphite
Stephan Bergmann
sbergman at redhat.com
Mon Jun 29 03:26:53 PDT 2015
external/graphite/UnpackedTarball_graphite.mk | 3 +
external/graphite/ubsan.patch | 51 ++++++++++++++++++++++++++
2 files changed, 54 insertions(+)
New commits:
commit 37b67904b2c71ed0997d4f4e5b929398fb14d48e
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Mon Jun 29 12:26:16 2015 +0200
external/graphite: work around -fsanitize=nonnull-attribute/vptr
Change-Id: Ic0766555dc7a04bbb8c7ad8f9cba3d74d84c59db
diff --git a/external/graphite/UnpackedTarball_graphite.mk b/external/graphite/UnpackedTarball_graphite.mk
index c7fa86e..c0b9e0d 100644
--- a/external/graphite/UnpackedTarball_graphite.mk
+++ b/external/graphite/UnpackedTarball_graphite.mk
@@ -11,10 +11,13 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,graphite))
$(eval $(call gb_UnpackedTarball_set_tarball,graphite,$(GRAPHITE_TARBALL)))
+$(eval $(call gb_UnpackedTarball_set_patchlevel,graphite,0))
+
# http://projects.palaso.org/issues/1115
$(eval $(call gb_UnpackedTarball_add_patches,graphite,\
external/graphite/graphite2.issue1115.patch.1 \
external/graphite/graphite2.win64.patch.1 \
+ external/graphite/ubsan.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/graphite/ubsan.patch b/external/graphite/ubsan.patch
new file mode 100644
index 0000000..b1617b1
--- /dev/null
+++ b/external/graphite/ubsan.patch
@@ -0,0 +1,51 @@
+--- src/Pass.cpp
++++ src/Pass.cpp
+@@ -294,7 +294,7 @@
+ s->rules = begin;
+ s->rules_end = (end - begin <= FiniteStateMachine::MAX_RULES)? end :
+ begin + FiniteStateMachine::MAX_RULES;
+- qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry);
++ if (end != begin) qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry);
+ }
+
+ return true;
+--- src/gr_face.cpp
++++ src/gr_face.cpp
+@@ -87,7 +87,7 @@
+
+ Face *res = new Face(appFaceHandle, *ops);
+ if (res && load_face(*res, faceOptions))
+- return static_cast<gr_face *>(res);
++ return reinterpret_cast<gr_face *>(res);
+
+ delete res;
+ return 0;
+@@ -195,7 +195,7 @@
+
+ void gr_face_destroy(gr_face *face)
+ {
+- delete face;
++ delete static_cast<Face *>(face);
+ }
+
+
+--- src/gr_font.cpp
++++ src/gr_font.cpp
+@@ -50,7 +50,7 @@
+ if (face == 0) return 0;
+
+ Font * const res = new Font(ppm, *face, appFontHandle, font_ops);
+- return static_cast<gr_font*>(res);
++ return reinterpret_cast<gr_font*>(res);
+ }
+
+ gr_font* gr_make_font_with_advance_fn(float ppm/*pixels per em*/, const void* appFontHandle/*non-NULL*/, gr_advance_fn getAdvance, const gr_face * face/*needed for scaling*/)
+@@ -61,7 +61,7 @@
+
+ void gr_font_destroy(gr_font *font)
+ {
+- delete font;
++ delete static_cast<Font *>(font);
+ }
+
+
More information about the Libreoffice-commits
mailing list