]> granicus.if.org Git - libass/commitdiff
coretext: don't fetch character set when it isn't needed
authorOleg Oshmyan <chortos@inbox.lv>
Tue, 1 Dec 2015 16:31:33 +0000 (18:31 +0200)
committerOleg Oshmyan <chortos@inbox.lv>
Tue, 1 Dec 2015 16:31:33 +0000 (18:31 +0200)
This avoids unnecessary work and fixes a memory leak:
the character set wasn't released when code == 0.

libass/ass_coretext.c

index f480d3c5ccb1dd2d68d5c15e7347a06d5545e4bb..d749df0e57142bebbc7b85ea7c08c519da918be9 100644 (file)
@@ -71,6 +71,9 @@ static bool check_postscript(void *priv)
 
 static bool check_glyph(void *priv, uint32_t code)
 {
+    if (code == 0)
+        return true;
+
     CTFontDescriptorRef fontd = priv;
     CFCharacterSetRef set =
         CTFontDescriptorCopyAttribute(fontd, kCTFontCharacterSetAttribute);
@@ -78,9 +81,6 @@ static bool check_glyph(void *priv, uint32_t code)
     if (!set)
         return true;
 
-    if (code == 0)
-        return true;
-
     bool result = CFCharacterSetIsLongCharacterMember(set, code);
     SAFE_CFRelease(set);
     return result;