Clone in a terminal:
Commit d948c95
Johan Mattsson - 2014-03-05T18:37:53+00:00
d948c958fe4848f0ef11cf425ef68ae29ac1deefjohan.mattsson.m@gmail.com

Remove some code that needs speed optimization

Changed files (5)

Diff

diff --git a/libbirdfont/Font.vala b/libbirdfont/Font.valaindex 9774c08..5a07efb 100644--- a/libbirdfont/Font.vala+++ b/libbirdfont/Font.vala@@ -355,12 +355,14 @@ public class Font : GLib.Object { 	} 	 	public string get_name_for_character (unichar c) {-		// if some glyph is already mapped to unichar, return it's name+		// if a glyph already is mapped to a unichar, return it's name 		uint i = 0; 		Glyph? gl; 		Glyph g; 		StringBuilder sb; 		+		// FIXME: this is too slow+		/* 		while ((gl = get_glyph_indice (i++)) != null) { 			g = (!) gl; 			@@ -368,6 +370,7 @@ public class Font : GLib.Object { 				return g.name; 			} 		}+		*/ 						 		// otherwise return some default name, possibly from unicode database 		if (c == 0) {diff --git a/libbirdfont/KerningClasses.vala b/libbirdfont/KerningClasses.valaindex 2e7b209..6104a2a 100644--- a/libbirdfont/KerningClasses.vala+++ b/libbirdfont/KerningClasses.vala@@ -263,6 +263,7 @@ public class KerningClasses : GLib.Object { 	} 	 	public void all_pairs (KerningIterator kerningIterator) {+		// FIXME: THIS CODE IS TOO SLOW 		Font f = BirdFont.get_current_font (); 		Glyph? g1, g2; 		Glyph glyph1, glyph2;diff --git a/libbirdfont/OpenFontFormat/Cmap.vala b/libbirdfont/OpenFontFormat/Cmap.valaindex e3f7651..4f577a2 100644--- a/libbirdfont/OpenFontFormat/Cmap.vala+++ b/libbirdfont/OpenFontFormat/Cmap.vala@@ -299,7 +299,7 @@ public class CmapSubtableWindowsUnicode : CmapSubtable { 		} 		fd.add_ushort (0); 		-		// Fixa: implement rest of type 4 (mind gid_length in length field)+		// FIXME: implement the rest of type 4 (mind gid_length in length field) 	} } diff --git a/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala b/libbirdfont/OpenFontFormat/OpenFontFormatWriter.valaindex 238d0ed..8ffa7eb 100644--- a/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala+++ b/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala@@ -55,7 +55,7 @@ public class OpenFontFormatWriter : Object  { 		dl = directory_table.get_font_file_size (); 		 		if (dl == 0) {-			warning ("font is of zero size.");+			warning ("font size is zero"); 			return; 		} 		diff --git a/libbirdfont/OverView.vala b/libbirdfont/OverView.valaindex 19d1087..078a8d8 100644--- a/libbirdfont/OverView.vala+++ b/libbirdfont/OverView.vala@@ -688,21 +688,28 @@ public class OverView : FontDisplay { 		 		// scroll to char 		if (all_available) {-			for (r = 0; r < font.length (); r += items_per_row) {-				for (i = 0; i < items_per_row; i++) {-					glyphs = font.get_glyph_collection_indice ((uint32) r + i);-					return_if_fail (glyphs != null);-					glyph = ((!) glyphs).get_current ();+			+			// don't search for glyphs in huge CJK fonts +			if (font.length () > 300) {+				r = 0;+			} else {+				// FIXME: too slow+				for (r = 0; r < font.length (); r += items_per_row) {+					for (i = 0; i < items_per_row; i++) {+						glyphs = font.get_glyph_collection_indice ((uint32) r + i);+						return_if_fail (glyphs != null);+						glyph = ((!) glyphs).get_current ();+						+						if (glyph.name == ch) {+							index = i;+						}+					} 					-					if (glyph.name == ch) {-						index = i;+					if (index > -1) {+						break; 					} 				}-				-				if (index > -1) {-					break;-				}-			}			+			} 		} else { 			for (r = 0; r < gr.length (); r += items_per_row) { 				for (i = 0; i < items_per_row; i++) {

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112