summaryrefslogtreecommitdiffstats
path: root/gfx/cairo/pixman-android-cpu-detect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/cairo/pixman-android-cpu-detect.patch')
-rw-r--r--gfx/cairo/pixman-android-cpu-detect.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/gfx/cairo/pixman-android-cpu-detect.patch b/gfx/cairo/pixman-android-cpu-detect.patch
new file mode 100644
index 0000000000..130af51308
--- /dev/null
+++ b/gfx/cairo/pixman-android-cpu-detect.patch
@@ -0,0 +1,29 @@
+diff --git a/gfx/cairo/libpixman/src/pixman-cpu.c b/gfx/cairo/libpixman/src/pixman-cpu.c
+--- a/gfx/cairo/libpixman/src/pixman-cpu.c
++++ b/gfx/cairo/libpixman/src/pixman-cpu.c
+@@ -257,19 +257,22 @@ pixman_arm_read_auxv()
+ arm_tests_initialized = TRUE;
+ return;
+ }
+
+ fread(buf, sizeof(char), 1024, f);
+ fclose(f);
+ pos = strstr(buf, ver_token);
+ if (pos) {
+- int ver = *(pos + strlen(ver_token)) - '0';
+- arm_has_v7 = ver >= 7;
+- arm_has_v6 = ver >= 6;
++ char vchar = *(pos + strlen(ver_token));
++ if (vchar >= '0' && vchar <= '9') {
++ int ver = vchar - '0';
++ arm_has_v7 = ver >= 7;
++ arm_has_v6 = ver >= 6;
++ }
+ }
+ arm_has_neon = strstr(buf, "neon") != NULL;
+ arm_has_vfp = strstr(buf, "vfp") != NULL;
+ arm_has_iwmmxt = strstr(buf, "iwmmxt") != NULL;
+ arm_tests_initialized = TRUE;
+ }
+
+ #else