Fix minor bugs reported by the Coverity scan report.
authorBehdad Esfahbod <behdad@gnome.org>
Mon, 10 Apr 2006 10:33:17 +0000 (10:33 +0000)
committerBehdad Esfahbod <behdad@src.gnome.org>
Mon, 10 Apr 2006 10:33:17 +0000 (10:33 +0000)
2006-04-10  Behdad Esfahbod  <behdad@gnome.org>

        Fix minor bugs reported by the Coverity scan report.

        * pango/opentype/harfbuzz-gdef.c (HB_GDEF_Build_ClassDefinition):
        * pango/opentype/harfbuzz-gpos.c (HB_GPOS_Query_Scripts),
        (HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do not access
        structs before we check them for nullity.

        * pango/pango-layout.c (pango_layout_index_to_line),
        (pango_layout_index_to_line_and_extents),
        (pango_layout_index_to_pos): Check for invalid iterators outside the
        loop, so we don't crash.

        * pango/pango-layout.c (pango_layout_line_x_to_index): Set
        char_trailing instead of trailing in one of too many paths.  Should
        have been a typo.

        * pango/pangox.c (get_font_metrics_from_subfonts): Check for nullity
        somewhere.

src/harfbuzz-gdef.c
src/harfbuzz-gpos.c

index 9b81fc7..5a649de 100644 (file)
@@ -887,7 +887,7 @@ FT_Error  HB_GDEF_Build_ClassDefinition( HB_GDEFHeader*  gdef,
   FT_UShort              start, curr_glyph, curr_class;
   FT_UShort              n, m, count;
   FT_Error               error;
-  FT_Memory              memory = gdef->memory;
+  FT_Memory              memory;
 
   HB_ClassDefinition*   gcd;
   HB_ClassRangeRecord*  gcrr;
@@ -897,6 +897,7 @@ FT_Error  HB_GDEF_Build_ClassDefinition( HB_GDEFHeader*  gdef,
   if ( !gdef || !glyph_array || !class_array )
     return FT_Err_Invalid_Argument;
 
+  memory = gdef->memory;
   gcd = &gdef->GlyphClassDef;
 
   /* We build a format 2 table */
index d668749..95f9a72 100644 (file)
@@ -5771,7 +5771,7 @@ FT_Error  HB_GPOS_Query_Scripts( HB_GPOSHeader*  gpos,
                                 FT_ULong**       script_tag_list )
 {
   FT_Error           error;
-  FT_Memory          memory = gpos->memory;
+  FT_Memory          memory;
   FT_UShort          n;
   FT_ULong*          stl;
 
@@ -5782,6 +5782,7 @@ FT_Error  HB_GPOS_Query_Scripts( HB_GPOSHeader*  gpos,
   if ( !gpos || !script_tag_list )
     return FT_Err_Invalid_Argument;
 
+  memory = gpos->memory;
   sl = &gpos->ScriptList;
   sr = sl->ScriptRecord;
 
@@ -5804,7 +5805,7 @@ FT_Error  HB_GPOS_Query_Languages( HB_GPOSHeader*  gpos,
                                   FT_ULong**       language_tag_list )
 {
   FT_Error            error;
-  FT_Memory           memory = gpos->memory;
+  FT_Memory           memory;
   FT_UShort           n;
   FT_ULong*           ltl;
 
@@ -5817,6 +5818,7 @@ FT_Error  HB_GPOS_Query_Languages( HB_GPOSHeader*  gpos,
   if ( !gpos || !language_tag_list )
     return FT_Err_Invalid_Argument;
 
+  memory = gpos->memory;
   sl = &gpos->ScriptList;
   sr = sl->ScriptRecord;
 
@@ -5850,7 +5852,7 @@ FT_Error  HB_GPOS_Query_Features( HB_GPOSHeader*  gpos,
 {
   FT_UShort           n;
   FT_Error            error;
-  FT_Memory           memory = gpos->memory;
+  FT_Memory           memory;
   FT_ULong*           ftl;
 
   HB_ScriptList*     sl;
@@ -5867,6 +5869,7 @@ FT_Error  HB_GPOS_Query_Features( HB_GPOSHeader*  gpos,
   if ( !gpos || !feature_tag_list )
     return FT_Err_Invalid_Argument;
 
+  memory = gpos->memory;
   sl = &gpos->ScriptList;
   sr = sl->ScriptRecord;