From a7305ab2624cbc08160dc11587ba3dc4e17781c2 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sat, 26 Jul 2003 15:02:13 +0000 Subject: [PATCH] Move allocation afer initial checks, fixing memory leak. Sat Jul 26 10:52:20 2003 Owen Taylor * 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. --- src/ftxgpos.c | 8 ++++---- src/ftxgsub.c | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/ftxgpos.c b/src/ftxgpos.c index 10267e0a..7a17e1cc 100644 --- a/src/ftxgpos.c +++ b/src/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/src/ftxgsub.c b/src/ftxgsub.c index c2a59baa..aedc551a 100644 --- a/src/ftxgsub.c +++ b/src/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++; -- GitLab