[fondue-commits] [SCM] Fondue Font Editor branch, master, updated. 2f660c606d28eb19c70ec2b13095419175f260cc

Eugeniy Meshcheryakov eugen at debian.org
Wed Apr 2 14:22:37 UTC 2008


The following commit has been merged in the master branch:
commit b2647c9ed8aa896e8f437300005b8fdf6680ff84
Author: Eugeniy Meshcheryakov <eugen at debian.org>
Date:   Wed Apr 2 16:16:56 2008 +0200

    check for Glyph::computeMetrics() retval

diff --git a/nongui/ttfwriter.cxx b/nongui/ttfwriter.cxx
index 8f005a9..10c7faa 100644
--- a/nongui/ttfwriter.cxx
+++ b/nongui/ttfwriter.cxx
@@ -255,6 +255,7 @@ bool TTFWriter::writeGlyphs()
 		firstGlyph = sortedGlyphs.at(1);
 	if (firstGlyph) {
 		qreal xMin, xMax, yMin, yMax;
+		// FIXME this can fail
 		firstGlyph->computeMetrics(xMin, xMax, yMin, yMax);
 		qint16 ascent = (qint16)yMax;
 		qint16 descent = (qint16)yMin;
@@ -715,20 +716,21 @@ bool TTFWriter::writeHmtx()
 
 		if (g) {
 			qreal xMin, xMax, yMin, yMax;
-			g->computeMetrics(xMin, xMax, yMin, yMax);
-			lsb = (quint16)xMin;
-			advance = (qint16)g->horizAdvX();
-			qint16 ascent = (qint16)yMax;
-			qint16 descent = (qint16)yMin;
-			qint16 rsb = (qint16)xMax;
-			qint16 extent = rsb; // FIXME is this correct?
-
-			if (maxAscent < ascent) maxAscent = ascent;
-			if (maxDescent > descent) maxDescent = descent;
-			if (maxAdvanceWidth < advance) maxAdvanceWidth = advance;
-			if (minLSB > lsb) minLSB = lsb;
-			if (minRSB > rsb) minRSB = rsb;
-			if (maxExtent < extent) maxExtent = extent;
+			if (g->computeMetrics(xMin, xMax, yMin, yMax)) {
+				lsb = (quint16)xMin;
+				advance = (qint16)g->horizAdvX();
+				qint16 ascent = (qint16)yMax;
+				qint16 descent = (qint16)yMin;
+				qint16 rsb = (qint16)xMax;
+				qint16 extent = rsb; // FIXME is this correct?
+
+				if (maxAscent < ascent) maxAscent = ascent;
+				if (maxDescent > descent) maxDescent = descent;
+				if (maxAdvanceWidth < advance) maxAdvanceWidth = advance;
+				if (minLSB > lsb) minLSB = lsb;
+				if (minRSB > rsb) minRSB = rsb;
+				if (maxExtent < extent) maxExtent = extent;
+			}
 		}
 		
 		ret = ret && writeBigEndian(&buffer, advance); // Advance width

-- 
Fondue Font Editor



More information about the fondue-commits mailing list