summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2003-07-26 15:02:13 +0000
committerOwen Taylor <otaylor@src.gnome.org>2003-07-26 15:02:13 +0000
commitb36cd6496c29664387ee38b5f957db954cda1977 (patch)
tree8fafc3d4025bd6d180d2830f6946a2864f0e6ebd /pango
parent02bbbd6831467617963dd2e1f439cc28c00784a6 (diff)
downloadpango-b36cd6496c29664387ee38b5f957db954cda1977.tar.gz
Move allocation afer initial checks, fixing memory leak.
Sat Jul 26 10:52:20 2003 Owen Taylor <otaylor@redhat.com> * pango/opentype/ftxgpos.c (Lookup_ContextPos2): * pango/opentype/ftxgsub.c (Lookup_ContextSubst2): Move allocation afer initial checks, fixing memory leak. * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst2): Fix some more error return memory leaks that weren't fixed in the Qt changes.
Diffstat (limited to 'pango')
-rw-r--r--pango/opentype/ftxgpos.c8
-rw-r--r--pango/opentype/ftxgsub.c12
2 files changed, 10 insertions, 10 deletions
diff --git a/pango/opentype/ftxgpos.c b/pango/opentype/ftxgpos.c
index 10267e0a..7a17e1cc 100644
--- a/pango/opentype/ftxgpos.c
+++ b/pango/opentype/ftxgpos.c
@@ -4020,9 +4020,6 @@
gdef = gpos->gdef;
- if ( ALLOC_ARRAY( classes, cpf2->MaxContextLength, FT_UShort ) )
- return error;
-
if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) )
return error;
@@ -4032,7 +4029,10 @@
error = Coverage_Index( &cpf2->Coverage, in->string[in->pos], &index );
if ( error )
- goto End;
+ return error;
+
+ if ( ALLOC_ARRAY( classes, cpf2->MaxContextLength, FT_UShort ) )
+ return error;
error = Get_Class( &cpf2->ClassDef, in->string[in->pos],
&classes[0], NULL );
diff --git a/pango/opentype/ftxgsub.c b/pango/opentype/ftxgsub.c
index c2a59baa..aedc551a 100644
--- a/pango/opentype/ftxgsub.c
+++ b/pango/opentype/ftxgsub.c
@@ -2206,9 +2206,6 @@
gdef = gsub->gdef;
- if ( ALLOC_ARRAY( classes, csf2->MaxContextLength, FT_UShort ) )
- return error;
-
if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) )
return error;
@@ -2218,7 +2215,10 @@
error = Coverage_Index( &csf2->Coverage, in->string[in->pos], &index );
if ( error )
- goto End;
+ return error;
+
+ if ( ALLOC_ARRAY( classes, csf2->MaxContextLength, FT_UShort ) )
+ return error;
error = Get_Class( &csf2->ClassDef, in->string[in->pos],
&classes[0], NULL );
@@ -3646,7 +3646,7 @@
while ( CHECK_Property( gdef, s_in[j], flags, &property ) )
{
if ( error && error != TTO_Err_Not_Covered )
- return error;
+ goto End1;
if ( j > curr_pos )
j--;
@@ -3720,7 +3720,7 @@
while ( CHECK_Property( gdef, s_in[j], flags, &property ) )
{
if ( error && error != TTO_Err_Not_Covered )
- return error;
+ goto End1;
if ( curr_pos + j < in->length )
j++;