summaryrefslogtreecommitdiff
path: root/pango
Commit message (Collapse)AuthorAgeFilesLines
* pango-attributes.c: Fix on older compilersChun-wei Fan2020-06-241-2/+4
| | | | | Avoid declaring a variables in a for loop initialization, so that we won't accidentally break building on older compilers.
* Fix crashes with empty attribute listsMatthias Clasen2020-06-221-52/+54
| | | | | | | | There were a few cases left where empty attribute lists could lead to crashes. This was observed causing crashes in gnumeric. Testcases included.
* Fix another problem with pango_attr_list_changeMatthias Clasen2020-06-171-7/+11
| | | | | This was showing up as the colored Google link in the gtk4-demo links demo losing its colors.
* Include HarfBuzz when generating introspection dataEmmanuele Bassi2020-06-111-1/+1
| | | | | | | | | | The Pango API exposes harfbuzz types, and so we need to depend on HarfBuzz-0.0 when generating our introspection data. The introspection data on HarfBuzz was fixed upstream, even though the current introspected API is not stellar. Fixes: #458
* Merge branch 'fix-gtk2-crash' into 'master'Matthias Clasen2020-06-111-15/+15
|\ | | | | | | | | Revert "PangoLanguage: Fix clang -Wcast-align warnings" See merge request GNOME/pango!203
| * Revert "PangoLanguage: Fix clang -Wcast-align warnings"Matthias Clasen2020-06-111-15/+15
| | | | | | | | | | | | This reverts commit 3a9398fb989ff571aa40405987e20d548717687e. This commit was causing crashes, see #481
* | Fix a crash in pango_attr_list_equalMatthias Clasen2020-06-101-0/+3
| | | | | | | | | | When allowing attributes to be NULL, we need to take that into account here too.
* | Merge branch 'fix-attr-lists' into 'master'Matthias Clasen2020-06-101-3/+9
|\ \ | | | | | | | | | | | | Fix pango_attr_list_change See merge request GNOME/pango!200
| * | Fix pango_attr_list_changeMatthias Clasen2020-06-101-3/+9
| | | | | | | | | | | | | | | | | | There were some breakage introduced in the porting to GPtrArray - we sometimes ran into assertions, and sometimes forgot to add the new attribute altogether.
* | | Annotate the type for PangoXftFont methodsEmmanuele Bassi2020-06-101-6/+6
| | | | | | | | | | | | The methods take a PangoFont, but they are really PangoXftFont methods.
* | | Use the appropriate namespace for Pango sub-librariesEmmanuele Bassi2020-06-1010-22/+127
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Pango sub-libraries have symbols in the pango_<something> namespace, but the identifiers are in the Pango one, which makes consumers of the introspection data either get something like: PangoCairo.show_layout() with a bunch of warnings caused by the type macros not following the appropriate pattern, or: PangoCairo.cairo_show_layout() which breaks introspection ABI. We can use the __GI_SCANNER__ pre-processor symbol to trick the scanner into generating the appropriate representation of the API, while keeping the C consumers happy with the existing—albeit wildly inconsistent with best practices for GObject-based libraries—symbols.
* | Merge branch 'fix-another-crash' into 'master'Matthias Clasen2020-06-101-1/+1
|\ \ | | | | | | | | | | | | | | | | | | itemize: Work around gtk2 brokenness Closes #480 See merge request GNOME/pango!198
| * | itemize: Work around gtk2 brokennessMatthias Clasen2020-06-101-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | GTK 2 apparently manages to call pango_itemize_with_base_dir with a non-zero length for a string that contains 0 characters. That in turn causes pango_log2vis_get_embedding_levels to return NULL, and things go downhill from there. A test is included. Fixes: #480
* | Use the correct identifier for Pango sub-librariesEmmanuele Bassi2020-06-101-5/+5
|/ | | | | | | | The Pango sub-libraries sadly hijack the Pango namespace for their symbols, but use a different namespace for the identifiers. This fixes an introspection ABI incompatible change that made its way in Pango 1.45.
* Fix a crash in gtk2Matthias Clasen2020-06-101-5/+0
| | | | | | | Apparently, gtk2 assumes that calling pango_layout_set_attributes guarantees that the attribute list gains a ref. Fixes: #479
* layout: Ignore setting the attributes to the same listTimm Bäder2020-06-101-0/+4
|
* pango-tabs: Avoid passing NULL to memcpyTimm Bäder2020-06-101-1/+2
| | | | pango_tab_array_new might not actually allocate anything for ->tabs.
* pango-layout: Help static analysis a bitTimm Bäder2020-06-101-0/+2
| | | | | Make sure we have a valid iter here, which is of course always the case in reality.
* pangofc-fontmap: Avoid a dead assignmentTimm Bäder2020-06-101-1/+1
| | | | I believe this was meant to assign to variable and not res.
* pango-context: avoid assignment to uninitialized valueTimm Bäder2020-06-101-1/+2
| | | | | | | | | We're assigning EMBEDDING_CHANGED to state->changed in update_embedding_end(). At that point state->changed is uninitialized, but that doesn't matter since we later override the value anyway. Just pull the initialization to earlier in that function, which assigns EMBEDDING_CHANGED anyway, so doesn't change anything.
* pango-ot-info: Fix an uninitialized valueTimm Bäder2020-06-101-3/+4
| | | | | | | | | We never assign a value to l_index. Also, we pass on language_index to hb_ot_layout_script_select_language, even though the last parameter of that function is not nullable, while our language_index parameter is. Fix this to pass &l_index to hb_ot_layout_script_select_language, which is what I believe should happen.
* pangocairo-render: Make a local constTimm Bäder2020-06-101-1/+1
| | | | | | | | Avoiding this warning: ../pango/pangocairo-render.c:506:19: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] for (row = 0, p = name; row < rows; row++) ^ ~~~~
* attrs: Remove unused iterator memberTimm Bäder2020-06-101-1/+0
|
* attrs: Save attribute list in a GPtrArrayTimm Bäder2020-06-102-302/+231
|
* attrlist: Remove attributes_tailTimm Bäder2020-06-102-25/+11
| | | | It's only very rarely used, and will become even less important later.
* attrs: Save iterator stack in a GPtrArrayTimm Bäder2020-06-102-59/+71
| | | | One less linked list.
* layout: Fix a crashMatthias Clasen2020-06-091-12/+16
| | | | | pango_layout_get_effective_attributes can return NULL. But not all callers were handling that.
* Merge branch 'wip/baedert/for-master2' into 'master'Matthias Clasen2020-06-087-130/+264
|\ | | | | | | | | Wip/baedert/for master2 See merge request GNOME/pango!190
| * layout: Treat empty attr lists like NULL onesTimm Bäder2020-06-082-1/+7
| |
| * layout: Unconditionally unref attr listsTimm Bäder2020-06-081-5/+2
| |
| * pango-layout: Try to avoid allocating a new PangoAttrListTimm Bäder2020-06-081-5/+21
| |
| * glyph-item: Allocate attr iterator on the stackTimm Bäder2020-06-081-9/+11
| |
| * break: Only call break_attrs if we really have attributesTimm Bäder2020-06-081-1/+1
| |
| * break: Make a local constTimm Bäder2020-06-081-2/+1
| | | | | | | | Make it clearer that we're not going to modify the attribute
| * break_attrs: Bail out if we have no ALLOW_BREAKS attributesTimm Bäder2020-06-081-0/+6
| |
| * attributes: Add _pango_attr_list_has_attributesTimm Bäder2020-06-082-0/+8
| | | | | | | | A private function to find empty attribute lists
| * layout: Avoid getting the text length if we know it alreadyTimm Bäder2020-06-081-7/+14
| |
| * Allocate internal PangoAttrLists on the stackTimm Bäder2020-06-085-50/+67
| |
| * layout: Add missing (nullable) annotationTimm Bäder2020-06-081-1/+2
| |
| * layotu: Avoid invalidating when setting attrs from NULL to NULLTimm Bäder2020-06-081-1/+5
| |
| * Allocate internal PangoAttrListIterators on the stackTimm Bäder2020-06-083-46/+91
| |
| * layout: Try to avoid some work when creating itersTimm Bäder2020-06-081-6/+19
| | | | | | | | | | Instead of getting the logical rect and then not using it, try not to compute it in the first place.
| * pangocairo-context: Don't invalidate if font options are equalTimm Bäder2020-06-081-1/+9
| |
| * layout: Ignore setting the width if it won't have any effectTimm Bäder2020-06-081-0/+5
| | | | | | | | | | | | This is a pretty weak check (think e.g. a layout containing the text "a\na"), but it's very easy to do and still hits quite a few cases in real-world applications.
* | Merge branch 'for-master' into 'master'Matthias Clasen2020-06-0812-53/+101
|\ \ | | | | | | | | | | | | For master See merge request GNOME/pango!184
| * | Fix some annotationsRico Tzschichholz2020-06-083-3/+3
| | |
| * | build: Generate pkg-config files for PangoOT and PangoFcEmmanuele Bassi2020-06-081-4/+20
| | | | | | | | | | | | | | | Since we have them as separate namespaces, we need separate pkg-config file in order to let Vala consume them.
| * | build: Remove unnecessary argumentsEmmanuele Bassi2020-06-081-8/+0
| | | | | | | | | | | | | | | The pkgconfig.generate() function has default values for the version and installation path argument, and we're already using them.
| * | Skip introspection on low level APIEmmanuele Bassi2020-06-084-29/+41
| | | | | | | | | | | | | | | | | | We don't have introspection for fontconfig and freetype2 data types. While we do have introspection for Harfbuzz, it doesn't really work.
| * | Add missing GType for PangoOT deprecated typesEmmanuele Bassi2020-06-083-0/+28
| | | | | | | | | | | | | | | This way consumers of the deprecated API can get appropriate memory management for a couple of boxed types.