OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998-2004 David Turner and Werner Lemberg | 2 * Copyright (C) 1998-2004 David Turner and Werner Lemberg |
3 * Copyright (C) 2006 Behdad Esfahbod | 3 * Copyright (C) 2006 Behdad Esfahbod |
4 * Copyright (C) 2007 Red Hat, Inc. | 4 * Copyright (C) 2007 Red Hat, Inc. |
5 * | 5 * |
6 * This is part of HarfBuzz, an OpenType Layout engine library. | 6 * This is part of HarfBuzz, an OpenType Layout engine library. |
7 * | 7 * |
8 * Permission is hereby granted, without written agreement and without | 8 * Permission is hereby granted, without written agreement and without |
9 * license or royalty fees, to use, copy, modify, and distribute this | 9 * license or royalty fees, to use, copy, modify, and distribute this |
10 * software and its documentation for any purpose, provided that the | 10 * software and its documentation for any purpose, provided that the |
(...skipping 3140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3151 return error; | 3151 return error; |
3152 | 3152 |
3153 /* Note: The coverage table in format 2 doesn't give an index into | 3153 /* Note: The coverage table in format 2 doesn't give an index into |
3154 anything. It just lets us know whether or not we need to | 3154 anything. It just lets us know whether or not we need to |
3155 do any lookup at all. */ | 3155 do any lookup at all. */ |
3156 | 3156 |
3157 error = _HB_OPEN_Coverage_Index( &ccsf2->Coverage, IN_CURGLYPH(), &index ); | 3157 error = _HB_OPEN_Coverage_Index( &ccsf2->Coverage, IN_CURGLYPH(), &index ); |
3158 if ( error ) | 3158 if ( error ) |
3159 return error; | 3159 return error; |
3160 | 3160 |
| 3161 if (ccsf2->MaxInputLength < 1) |
| 3162 return HB_Err_Not_Covered; |
| 3163 |
3161 if ( ALLOC_ARRAY( backtrack_classes, ccsf2->MaxBacktrackLength, HB_UShort ) ) | 3164 if ( ALLOC_ARRAY( backtrack_classes, ccsf2->MaxBacktrackLength, HB_UShort ) ) |
3162 return error; | 3165 return error; |
3163 known_backtrack_classes = 0; | 3166 known_backtrack_classes = 0; |
3164 | 3167 |
3165 if (ccsf2->MaxInputLength < 1) | |
3166 return HB_Err_Not_Covered; | |
3167 | |
3168 if ( ALLOC_ARRAY( input_classes, ccsf2->MaxInputLength, HB_UShort ) ) | 3168 if ( ALLOC_ARRAY( input_classes, ccsf2->MaxInputLength, HB_UShort ) ) |
3169 goto End3; | 3169 goto End3; |
3170 known_input_classes = 1; | 3170 known_input_classes = 1; |
3171 | 3171 |
3172 if ( ALLOC_ARRAY( lookahead_classes, ccsf2->MaxLookaheadLength, HB_UShort ) ) | 3172 if ( ALLOC_ARRAY( lookahead_classes, ccsf2->MaxLookaheadLength, HB_UShort ) ) |
3173 goto End2; | 3173 goto End2; |
3174 known_lookahead_classes = 0; | 3174 known_lookahead_classes = 0; |
3175 | 3175 |
3176 error = _HB_OPEN_Get_Class( &ccsf2->InputClassDef, IN_CURGLYPH(), | 3176 error = _HB_OPEN_Get_Class( &ccsf2->InputClassDef, IN_CURGLYPH(), |
3177 &input_classes[0], NULL ); | 3177 &input_classes[0], NULL ); |
(...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4320 } | 4320 } |
4321 } | 4321 } |
4322 | 4322 |
4323 error = retError; | 4323 error = retError; |
4324 | 4324 |
4325 return error; | 4325 return error; |
4326 } | 4326 } |
4327 | 4327 |
4328 | 4328 |
4329 /* END */ | 4329 /* END */ |
OLD | NEW |