diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/packages/xorg-lib/libxfont/builtinreaddirectory-no-side-effect.patch | 188 | ||||
-rw-r--r-- | meta/packages/xorg-lib/libxfont_1.3.1.bb (renamed from meta/packages/xorg-lib/libxfont_1.3.0.bb) | 4 |
2 files changed, 1 insertions, 191 deletions
diff --git a/meta/packages/xorg-lib/libxfont/builtinreaddirectory-no-side-effect.patch b/meta/packages/xorg-lib/libxfont/builtinreaddirectory-no-side-effect.patch deleted file mode 100644 index dd307434b..000000000 --- a/meta/packages/xorg-lib/libxfont/builtinreaddirectory-no-side-effect.patch +++ /dev/null @@ -1,188 +0,0 @@ -commit 7670d4a2720c61fbc7b989fed14c676f04ac3ad1 -Author: Dodji Seketeli <dodji@openedhand.com> -Date: Mon Jul 16 12:24:34 2007 +0200 - - Remove side effects from BuiltinReadDirectory() - - The first time BuiltinReadDirectory() is called, - save the content of builtin_dir and builtin_alias, - before calling FontFileAddFontFile(), because that fonction - will modify those. - - Then, in subsequent calls to BuiltinReadDirectory(), restore - builtin_dir and builtin_alias so that the side effect incurred - by the first call disappears. - -diff --git a/src/builtins/dir.c b/src/builtins/dir.c -index c272449..97f1e1e 100644 ---- a/src/builtins/dir.c -+++ b/src/builtins/dir.c -@@ -29,6 +29,133 @@ - #endif - #include "builtin.h" - -+BuiltinDirPtr -+BuiltinDirsDup (const BuiltinDirPtr a_dirs, -+ int a_dirs_len) -+{ -+ BuiltinDirPtr dirs=NULL ; -+ int i=0 ; -+ -+ if (!a_dirs) -+ return NULL ; -+ -+ dirs = xcalloc (a_dirs_len, sizeof (BuiltinDirRec)) ; -+ if (!dirs) -+ return NULL ; -+ -+ for (i=0; i < a_dirs_len; i++) { -+ int len = strlen (a_dirs[i].file_name) ; -+ dirs[i].file_name = xcalloc (1, len) ; -+ memmove (dirs[i].file_name, a_dirs[i].file_name, len); -+ len = strlen (a_dirs[i].font_name) ; -+ dirs[i].font_name = xcalloc (1, len) ; -+ memmove (dirs[i].font_name, a_dirs[i].font_name, len); -+ } -+ return dirs ; -+} -+ -+/** -+ * Copy a_save back into a_cur -+ * @param a_cur the instance of BuiltinDir to restore -+ * @param a_saved the saved instance of BuiltinDir to copy into a_cur -+ * @return 0 if went okay, 1 otherwise. -+ */ -+int -+BuiltinDirRestore (BuiltinDirPtr a_cur, -+ const BuiltinDirPtr a_saved) -+{ -+ if (!a_cur) -+ return 1 ; -+ if (!a_saved) -+ return 0 ; -+ -+ if (a_saved->font_name) -+ memmove (a_cur->font_name, a_saved->font_name, strlen (a_saved->font_name)) ; -+ return 0 ; -+} -+ -+ -+int -+BuiltinDirsRestore (BuiltinDirPtr a_cur_tab, -+ const BuiltinDirPtr a_saved_tab, -+ int a_tab_len) -+{ -+ int i=0 ; -+ -+ if (!a_cur_tab) -+ return 1 ; -+ if (!a_saved_tab) -+ return 0 ; -+ -+ for (i=0 ; i < a_tab_len; i++) { -+ if (BuiltinDirRestore (&a_cur_tab[i], &a_saved_tab[i])) -+ return 1 ; -+ } -+ return 0 ; -+} -+ -+BuiltinAliasPtr -+BuiltinAliasesDup (const BuiltinAliasPtr a_aliases, -+ int a_aliases_len) -+{ -+ BuiltinAliasPtr aliases=NULL ; -+ int i=0 ; -+ -+ if (!a_aliases) -+ return NULL ; -+ -+ aliases = xcalloc (a_aliases_len, sizeof (BuiltinAliasRec)) ; -+ if (!aliases) -+ return NULL ; -+ -+ for (i=0; i < a_aliases_len; i++) { -+ int len = strlen (a_aliases[i].font_name) ; -+ aliases[i].font_name = xcalloc (1, len) ; -+ memmove (aliases[i].font_name, a_aliases[i].font_name, len); -+ } -+ return aliases ; -+} -+ -+/** -+ * Copy a_save back into a_cur -+ * @param a_cur the instance of BuiltinAlias to restore -+ * @param a_saved the saved instance of BuiltinAlias to copy into a_cur -+ * @return 0 if went okay, 1 otherwise. -+ */ -+int -+BuiltinAliasRestore (BuiltinAliasPtr a_cur, -+ const BuiltinAliasPtr a_save) -+{ -+ if (!a_cur) -+ return 1 ; -+ if (!a_save) -+ return 0 ; -+ if (a_save->alias_name) -+ memmove (a_cur->alias_name, a_save->alias_name, strlen (a_save->alias_name)) ; -+ if (a_save->font_name) -+ memmove (a_cur->font_name, a_save->font_name, strlen (a_save->font_name)) ; -+ return 0 ; -+} -+ -+int -+BuiltinAliasesRestore (BuiltinAliasPtr a_cur_tab, -+ const BuiltinAliasPtr a_saved_tab, -+ int a_tab_len) -+{ -+ int i=0 ; -+ -+ if (!a_cur_tab) -+ return 1 ; -+ if (!a_saved_tab) -+ return 0 ; -+ -+ for (i=0 ; i < a_tab_len; i++) { -+ if (BuiltinAliasRestore (&a_cur_tab[i], &a_saved_tab[i])) -+ return 1 ; -+ } -+ return 0 ; -+} -+ - int - BuiltinReadDirectory (char *directory, FontDirectoryPtr *pdir) - { -@@ -36,6 +163,34 @@ BuiltinReadDirectory (char *directory, FontDirectoryPtr *pdir) - int i; - - dir = FontFileMakeDir ("", builtin_dir_count); -+ static BuiltinDirPtr saved_builtin_dir ; -+ static BuiltinAliasPtr saved_builtin_alias ; -+ -+ -+ if (saved_builtin_dir) -+ { -+ BuiltinDirsRestore ((BuiltinDirPtr) builtin_dir, -+ saved_builtin_dir, -+ builtin_dir_count) ; -+ } -+ else -+ { -+ saved_builtin_dir = BuiltinDirsDup ((const BuiltinDirPtr) builtin_dir, -+ builtin_dir_count) ; -+ } -+ -+ if (saved_builtin_alias) -+ { -+ BuiltinAliasesRestore ((BuiltinAliasPtr) builtin_alias, -+ saved_builtin_alias, -+ builtin_alias_count) ; -+ } -+ else -+ { -+ saved_builtin_alias = BuiltinAliasesDup ((const BuiltinAliasPtr) builtin_alias, -+ builtin_alias_count) ; -+ } -+ - for (i = 0; i < builtin_dir_count; i++) - { - if (!FontFileAddFontFile (dir, diff --git a/meta/packages/xorg-lib/libxfont_1.3.0.bb b/meta/packages/xorg-lib/libxfont_1.3.1.bb index d452d9796..b65c84f58 100644 --- a/meta/packages/xorg-lib/libxfont_1.3.0.bb +++ b/meta/packages/xorg-lib/libxfont_1.3.1.bb @@ -4,10 +4,8 @@ DESCRIPTION = "X11 font rasterisation library" LICENSE= "BSD-X" DEPENDS += "freetype fontcacheproto xtrans fontsproto libfontenc" PROVIDES = "xfont" -PR = "r2" PE = "1" -SRC_URI += "file://no-scalable-crash.patch;patch=1 \ - file://builtinreaddirectory-no-side-effect.patch;patch=1" +SRC_URI += "file://no-scalable-crash.patch;patch=1" XORG_PN = "libXfont" |