summaryrefslogtreecommitdiff
path: root/x11-toolkits/pango/files/extra-patch-gcc
diff options
context:
space:
mode:
Diffstat (limited to 'x11-toolkits/pango/files/extra-patch-gcc')
-rw-r--r--x11-toolkits/pango/files/extra-patch-gcc188
1 files changed, 188 insertions, 0 deletions
diff --git a/x11-toolkits/pango/files/extra-patch-gcc b/x11-toolkits/pango/files/extra-patch-gcc
new file mode 100644
index 000000000000..d8a1cc957480
--- /dev/null
+++ b/x11-toolkits/pango/files/extra-patch-gcc
@@ -0,0 +1,188 @@
+diff -ru ../pango-1.26.0/pango/opentype/hb-open-type-private.hh ./pango/opentype/hb-open-type-private.hh
+--- pango/opentype/hb-open-type-private.hh 2009-08-28 17:15:12.000000000 -0400
++++ pango/opentype/hb-open-type-private.hh 2009-09-30 05:14:13.000000000 -0400
+@@ -508,10 +508,10 @@
+ inline const Type& operator [] (unsigned int i) const
+ {
+ if (HB_UNLIKELY (i >= len)) return Null(Type);
+- return array[i];
++ return _array(i);
+ }
+ inline unsigned int get_size () const
+- { return sizeof (len) + len * sizeof (array[0]); }
++ { return sizeof (len) + len * sizeof (Type); }
+
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+ TRACE_SANITIZE ();
+@@ -523,7 +523,7 @@
+ return true;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!SANITIZE (array[i]))
++ if (!SANITIZE (_array(i)))
+ return false;
+ return true;
+ }
+@@ -532,7 +532,7 @@
+ if (!SANITIZE_GET_SIZE()) return false;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!array[i].sanitize (SANITIZE_ARG, base))
++ if (!_array(i).sanitize (SANITIZE_ARG, base))
+ return false;
+ return true;
+ }
+@@ -541,7 +541,7 @@
+ if (!SANITIZE_GET_SIZE()) return false;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!array[i].sanitize (SANITIZE_ARG, base, base2))
++ if (!_array(i).sanitize (SANITIZE_ARG, base, base2))
+ return false;
+ return true;
+ }
+@@ -550,15 +550,21 @@
+ if (!SANITIZE_GET_SIZE()) return false;
+ unsigned int count = len;
+ for (unsigned int i = 0; i < count; i++)
+- if (!array[i].sanitize (SANITIZE_ARG, base, user_data))
++ if (!_array(i).sanitize (SANITIZE_ARG, base, user_data))
+ return false;
+ return true;
+ }
+
+ LenType len;
+- Type array[];
++ //Type array[];
++ Type& _array(unsigned int i) const
++ {
++ return *(Type*)(&len + 1);
++ }
+ };
+
++#undef array
++
+ /* An array with a USHORT number of elements. */
+ template <typename Type>
+ struct ArrayOf : GenericArrayOf<USHORT, Type> {};
+@@ -586,7 +592,7 @@
+ inline const Type& operator [] (unsigned int i) const
+ {
+ if (HB_UNLIKELY (i >= this->len)) return Null(Type);
+- return this+this->array[i];
++ return this+this->_array(i);
+ }
+
+ inline bool sanitize (SANITIZE_ARG_DEF) {
+diff -ru ../pango-1.26.0/pango/opentype/hb-ot-layout-common-private.hh ./pango/opentype/hb-ot-layout-common-private.hh
+--- ../pango-1.26.0/pango/opentype/hb-ot-layout-common-private.hh 2009-08-28 17:15:12.000000000 -0400
++++ ./pango/opentype/hb-ot-layout-common-private.hh 2009-09-30 05:15:25.000000000 -0400
+@@ -67,14 +67,14 @@
+ inline const Tag& get_tag (unsigned int i) const
+ {
+ if (HB_UNLIKELY (i >= this->len)) return Null(Tag);
+- return this->array[i].tag;
++ return this->_array(i).tag;
+ }
+ inline bool get_tags (unsigned int *record_count /* IN/OUT */,
+ hb_tag_t *record_tags /* OUT */) const
+ {
+ unsigned int count = MIN (this->len, *record_count);
+ for (unsigned int i = 0; i < count; i++)
+- record_tags[i] = this->array[i].tag;
++ record_tags[i] = this->_array(i).tag;
+
+ *record_count = this->len;
+ return !!this->len;
+@@ -86,7 +86,7 @@
+ unsigned int count = this->len;
+ for (unsigned int i = 0; i < count; i++)
+ {
+- if (t == this->array[i].tag)
++ if (t == this->_array(i).tag)
+ {
+ if (index) *index = i;
+ return true;
+@@ -116,14 +116,14 @@
+ {
+ if (HB_UNLIKELY (i >= this->len))
+ return NO_INDEX;
+- return this->array[i];
++ return this->_array(i);
+ }
+ inline bool get_indexes (unsigned int *_count /* IN/OUT */,
+ unsigned int *_indexes /* OUT */) const
+ {
+ unsigned int count = MIN (this->len, *_count);
+ for (unsigned int i = 0; i < count; i++)
+- _indexes[i] = this->array[i];
++ _indexes[i] = this->_array(i);
+
+ *_count = this->len;
+ return !!this->len;
+diff -ru ../pango-1.26.0/pango/opentype/hb-ot-layout-gsub-private.hh ./pango/opentype/hb-ot-layout-gsub-private.hh
+--- ../pango-1.26.0/pango/opentype/hb-ot-layout-gsub-private.hh 2009-08-28 17:16:36.000000000 -0400
++++ ./pango/opentype/hb-ot-layout-gsub-private.hh 2009-09-30 05:28:53.000000000 -0400
+@@ -160,7 +160,7 @@
+ return false;
+
+ _hb_buffer_add_output_glyphs (buffer, 1,
+- substitute.len, (const uint16_t *) substitute.array,
++ substitute.len, (const uint16_t *) &substitute._array(0),
+ 0xFFFF, 0xFFFF);
+
+ /* This is a guess only ... */
+@@ -285,7 +285,7 @@
+ if (context->face->altfunc)
+ alt_index = (context->face->altfunc)(context->layout, buffer,
+ buffer->out_pos, glyph_id,
+- alt_set.len, alt_set.array);
++ alt_set.len, alt_set._array(0));
+ */
+
+ if (HB_UNLIKELY (alt_index >= alt_set.len))
+@@ -601,10 +601,10 @@
+ const ArrayOf<GlyphID> &substitute = CONST_NEXT (ArrayOf<GlyphID>, lookahead);
+
+ if (match_backtrack (APPLY_ARG,
+- backtrack.len, (USHORT *) backtrack.array,
++ backtrack.len, (USHORT *) &backtrack._array(0),
+ match_coverage, DECONST_CHARP(this)) &&
+ match_lookahead (APPLY_ARG,
+- lookahead.len, (USHORT *) lookahead.array,
++ lookahead.len, (USHORT *) &lookahead._array(0),
+ match_coverage, DECONST_CHARP(this),
+ 1))
+ {
+diff -ru ../pango-1.26.0/pango/opentype/hb-ot-layout-gsubgpos-private.hh ./pango/opentype/hb-ot-layout-gsubgpos-private.hh
+--- ../pango-1.26.0/pango/opentype/hb-ot-layout-gsubgpos-private.hh 2009-09-21 13:58:54.000000000 -0400
++++ ./pango/opentype/hb-ot-layout-gsubgpos-private.hh 2009-09-30 05:33:03.000000000 -0400
+@@ -572,10 +572,10 @@
+ const ArrayOf<USHORT> &lookahead = CONST_NEXT (ArrayOf<USHORT>, input);
+ const ArrayOf<LookupRecord> &lookup = CONST_NEXT (ArrayOf<LookupRecord>, lookahead);
+ return chain_context_lookup (APPLY_ARG,
+- backtrack.len, backtrack.array,
++ backtrack.len, &backtrack._array(0),
+ input.len, input.array,
+- lookahead.len, lookahead.array,
+- lookup.len, lookup.array,
++ lookahead.len, &lookahead._array(0),
++ lookup.len, &lookup._array(0),
+ lookup_context);
+ return false;
+ }
+@@ -754,10 +754,10 @@
+ {DECONST_CHARP(this), DECONST_CHARP(this), DECONST_CHARP(this)}
+ };
+ return chain_context_lookup (APPLY_ARG,
+- backtrack.len, (USHORT *) backtrack.array,
+- input.len, (USHORT *) input.array + 1,
+- lookahead.len, (USHORT *) lookahead.array,
+- lookup.len, lookup.array,
++ backtrack.len, (USHORT *) &backtrack._array(0),
++ input.len, (USHORT *) &input._array(1),
++ lookahead.len, (USHORT *) &lookahead._array(0),
++ lookup.len, &lookup._array(0),
+ lookup_context);
+ return false;
+ }