diff -prudN e:\freetype-2.6\src/autofit/afcjk.c e:\reactos\lib\3rdparty\freetype\src/autofit/afcjk.c --- e:\freetype-2.6\src/autofit/afcjk.c 2015-04-20 21:52:41 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/autofit/afcjk.c 2015-09-07 22:38:13 +0100 @@ -71,7 +71,11 @@ FT_Face face ) { /* scan the array of segments in each direction */ +#ifdef __REACTOS__ + AF_GlyphHintsRec *hints = malloc(sizeof(AF_GlyphHintsRec)); +#else AF_GlyphHintsRec hints[1]; +#endif FT_TRACE5(( "\n" @@ -90,7 +94,11 @@ FT_ULong glyph_index; FT_Long y_offset; int dim; +#ifdef __REACTOS__ + AF_CJKMetricsRec *dummy = malloc(sizeof(AF_CJKMetricsRec)); +#else AF_CJKMetricsRec dummy[1]; +#endif AF_Scaler scaler = &dummy->root.scaler; #ifdef FT_CONFIG_OPTION_PIC @@ -243,11 +251,18 @@ } #endif } +#ifdef __REACTOS__ + free(dummy); +#endif } FT_TRACE5(( "\n" )); af_glyph_hints_done( hints ); + +#ifdef __REACTOS__ + free(hints); +#endif } diff -prudN e:\freetype-2.6\src/autofit/aflatin.c e:\reactos\lib\3rdparty\freetype\src/autofit/aflatin.c --- e:\freetype-2.6\src/autofit/aflatin.c 2015-04-20 21:52:58 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/autofit/aflatin.c 2015-09-08 11:08:25 +0100 @@ -58,7 +58,11 @@ FT_Face face ) { /* scan the array of segments in each direction */ +#ifdef __REACTOS__ + AF_GlyphHintsRec *hints = malloc(sizeof(AF_GlyphHintsRec)); +#else AF_GlyphHintsRec hints[1]; +#endif FT_TRACE5(( "\n" @@ -77,7 +81,11 @@ FT_ULong glyph_index; FT_Long y_offset; int dim; +#ifdef __REACTOS__ + AF_LatinMetricsRec *dummy = malloc(sizeof(AF_LatinMetricsRec)); +#else AF_LatinMetricsRec dummy[1]; +#endif AF_Scaler scaler = &dummy->root.scaler; #ifdef FT_CONFIG_OPTION_PIC @@ -243,11 +251,19 @@ } #endif } +#ifdef __REACTOS__ + free(dummy); +#endif } FT_TRACE5(( "\n" )); af_glyph_hints_done( hints ); + +#ifdef __REACTOS__ + free(hints); +#endif + } diff -prudN e:\freetype-2.6\src/autofit/afmodule.c e:\reactos\lib\3rdparty\freetype\src/autofit/afmodule.c --- e:\freetype-2.6\src/autofit/afmodule.c 2015-06-07 05:44:38 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/autofit/afmodule.c 2015-09-07 20:58:52 +0100 @@ -351,9 +351,13 @@ return error; #else /* !FT_DEBUG_AUTOFIT */ - +#ifdef __REACTOS__ + AF_GlyphHintsRec *hints = malloc(sizeof(AF_GlyphHintsRec)); + AF_LoaderRec *loader = malloc(sizeof(AF_LoaderRec)); +#else AF_GlyphHintsRec hints[1]; AF_LoaderRec loader[1]; +#endif FT_UNUSED( size ); @@ -367,6 +371,11 @@ af_loader_done( loader ); af_glyph_hints_done( hints ); +#ifdef __REACTOS__ + free(hints); + free(loader); +#endif + return error; #endif /* !FT_DEBUG_AUTOFIT */ diff -prudN e:\freetype-2.6\src/base/ftbitmap.c e:\reactos\lib\3rdparty\freetype\src/base/ftbitmap.c --- e:\freetype-2.6\src/base/ftbitmap.c 2015-03-11 06:47:11 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/base/ftbitmap.c 2015-09-07 17:20:37 +0100 @@ -577,7 +577,16 @@ { FT_Int val = ss[0]; /* avoid a byte->int cast on each line */ - +#ifdef __REACTOS__ + tt[0] = (FT_Byte)( ( val & 0x80 ) ? 0xff : 0); + tt[1] = (FT_Byte)( ( val & 0x40 ) ? 0xff : 0); + tt[2] = (FT_Byte)( ( val & 0x20 ) ? 0xff : 0); + tt[3] = (FT_Byte)( ( val & 0x10 ) ? 0xff : 0); + tt[4] = (FT_Byte)( ( val & 0x08 ) ? 0xff : 0); + tt[5] = (FT_Byte)( ( val & 0x04 ) ? 0xff : 0); + tt[6] = (FT_Byte)( ( val & 0x02 ) ? 0xff : 0); + tt[7] = (FT_Byte)( ( val & 0x01 ) ? 0xff : 0); +#else tt[0] = (FT_Byte)( ( val & 0x80 ) >> 7 ); tt[1] = (FT_Byte)( ( val & 0x40 ) >> 6 ); tt[2] = (FT_Byte)( ( val & 0x20 ) >> 5 ); @@ -586,6 +595,7 @@ tt[5] = (FT_Byte)( ( val & 0x04 ) >> 2 ); tt[6] = (FT_Byte)( ( val & 0x02 ) >> 1 ); tt[7] = (FT_Byte)( val & 0x01 ); +#endif tt += 8; ss += 1; @@ -600,7 +610,11 @@ for ( ; j > 0; j-- ) { +#ifdef __REACTOS__ + tt[0] = (FT_Byte)( ( val & 0x80 ) ? 0xff : 0); +#else tt[0] = (FT_Byte)( ( val & 0x80 ) >> 7); +#endif val <<= 1; tt += 1; } diff -prudN e:\freetype-2.6\src/cff/cf2intrp.c e:\reactos\lib\3rdparty\freetype\src/cff/cf2intrp.c --- e:\freetype-2.6\src/cff/cf2intrp.c 2015-05-12 06:22:36 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/cff/cf2intrp.c 2015-09-08 10:46:46 +0100 @@ -463,7 +463,13 @@ CF2_ArrStackRec vStemHintArray; CF2_HintMaskRec hintMask; +#ifdef __REACTOS__ + CF2_GlyphPathRec *glyphPath = malloc(sizeof(CF2_GlyphPathRec)); +/* Ugly but it allows us to reduce the diff */ +#define glyphPath (*glyphPath) +#else CF2_GlyphPathRec glyphPath; +#endif /* initialize the remaining objects */ @@ -1197,7 +1203,13 @@ * discard `counterMask' and `counterHintMap'. * */ +#ifdef __REACTOS__ + CF2_HintMapRec *counterHintMap = malloc(sizeof(CF2_HintMapRec)); +/* Ugly but it allows us to reduce the diff */ +#define counterHintMap (*counterHintMap) +#else CF2_HintMapRec counterHintMap; +#endif CF2_HintMaskRec counterMask; @@ -1218,6 +1230,9 @@ &counterMask, 0, FALSE ); +#ifdef __REACTOS__ + free(&counterHintMap); +#endif } break; @@ -1564,6 +1579,12 @@ FT_TRACE4(( "\n" )); +#ifdef __REACTOS__ + free(&glyphPath); +#undef counterHintMap +#undef glyphPath +#endif + return; } diff -prudN e:\freetype-2.6\src/cid/cidgload.c e:\reactos\lib\3rdparty\freetype\src/cid/cidgload.c --- e:\freetype-2.6\src/cid/cidgload.c 2015-04-16 06:02:23 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/cid/cidgload.c 2015-09-08 10:59:15 +0100 @@ -273,7 +273,13 @@ { CID_GlyphSlot glyph = (CID_GlyphSlot)cidglyph; FT_Error error; +#ifdef __REACTOS__ + T1_DecoderRec *decoder = malloc(sizeof(T1_DecoderRec)); +/* Ugly but it allows us to reduce the diff */ +#define decoder (*decoder) +#else T1_DecoderRec decoder; +#endif CID_Face face = (CID_Face)cidglyph->face; FT_Bool hinting; @@ -435,6 +441,10 @@ } Exit: +#ifdef __REACTOS__ + free(&decoder); +#undef decoder +#endif return error; } diff -prudN e:\freetype-2.6\src/raster/ftraster.c e:\reactos\lib\3rdparty\freetype\src/raster/ftraster.c --- e:\freetype-2.6\src/raster/ftraster.c 2015-06-02 10:21:17 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/raster/ftraster.c 2015-09-08 11:09:33 +0100 @@ -3136,9 +3136,15 @@ const FT_Outline* outline = (const FT_Outline*)params->source; const FT_Bitmap* target_map = params->target; +#ifdef __REACTOS__ + FT_Error ret; + black_TWorker *worker; + Long *buffer; +#else black_TWorker worker[1]; Long buffer[FT_MAX( FT_RENDER_POOL_SIZE, 2048 ) / sizeof ( Long )]; +#endif if ( !raster ) @@ -3175,13 +3181,29 @@ if ( !target_map->buffer ) return FT_THROW( Invalid ); +#ifdef __REACTOS__ + worker = malloc(sizeof(black_TWorker)); + buffer = malloc(FT_MAX(FT_RENDER_POOL_SIZE, 2048)); +#endif + ras.outline = *outline; ras.target = *target_map; worker->buff = buffer; +#ifdef __REACTOS__ + worker->sizeBuff = buffer + (FT_MAX(FT_RENDER_POOL_SIZE, 2048) / sizeof(Long)); +#else worker->sizeBuff = (&buffer)[1]; /* Points to right after buffer. */ +#endif +#ifdef __REACTOS__ + ret = Render_Glyph(RAS_VAR); + free(worker); + free(buffer); + return ret; +#else return Render_Glyph( RAS_VAR ); +#endif } diff -prudN e:\freetype-2.6\src/smooth/ftgrays.c e:\reactos\lib\3rdparty\freetype\src/smooth/ftgrays.c --- e:\freetype-2.6\src/smooth/ftgrays.c 2015-03-11 06:47:11 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/smooth/ftgrays.c 2015-09-08 09:57:56 +0100 @@ -1940,10 +1940,17 @@ typedef ptrdiff_t FT_PtrDist; const FT_Outline* outline = (const FT_Outline*)params->source; const FT_Bitmap* target_map = params->target; +#ifdef __REACTOS__ + gray_TWorker *worker; + int ret; + TCell *buffer; + long buffer_size = FT_MAX(FT_RENDER_POOL_SIZE, 2048); +#else gray_TWorker worker[1]; TCell buffer[FT_MAX( FT_RENDER_POOL_SIZE, 2048 ) / sizeof ( TCell )]; long buffer_size = sizeof ( buffer ); +#endif int band_size = (int)( buffer_size / (long)( sizeof ( TCell ) * 8 ) ); @@ -1983,6 +1990,10 @@ typedef ptrdiff_t FT_PtrDist; if ( !( params->flags & FT_RASTER_FLAG_AA ) ) return FT_THROW( Invalid_Mode ); +#ifdef __REACTOS__ + worker = malloc(sizeof(gray_TWorker)); +#endif + /* compute clipping box */ if ( !( params->flags & FT_RASTER_FLAG_DIRECT ) ) { @@ -2002,6 +2013,10 @@ typedef ptrdiff_t FT_PtrDist; ras.clip_box.yMax = 32767L; } +#ifdef __REACTOS__ + buffer = malloc(buffer_size); +#endif + gray_init_cells( RAS_VAR_ buffer, buffer_size ); ras.outline = *outline; @@ -2023,7 +2038,14 @@ typedef ptrdiff_t FT_PtrDist; ras.render_span_data = &ras; } +#ifdef __REACTOS__ + ret = gray_convert_glyph(RAS_VAR); + free(worker); + free(buffer); + return ret; +#else return gray_convert_glyph( RAS_VAR ); +#endif } diff -prudN e:\freetype-2.6\src/type1/t1gload.c e:\reactos\lib\3rdparty\freetype\src/type1/t1gload.c --- e:\freetype-2.6\src/type1/t1gload.c 2015-04-13 17:14:02 +0100 +++ e:\reactos\lib\3rdparty\freetype\src/type1/t1gload.c 2015-09-08 10:55:18 +0100 @@ -154,7 +154,13 @@ FT_Pos* max_advance ) { FT_Error error; +#ifdef __REACTOS__ + T1_DecoderRec *decoder = malloc(sizeof(T1_DecoderRec)); +/* Ugly but it allows us to reduce the diff */ +#define decoder (*decoder) +#else T1_DecoderRec decoder; +#endif FT_Int glyph_index; T1_Font type1 = &face->type1; PSAux_Service psaux = (PSAux_Service)face->psaux; @@ -175,7 +181,14 @@ FT_RENDER_MODE_NORMAL, T1_Parse_Glyph ); if ( error ) +#ifdef __REACTOS__ + { + free(&decoder); + return error; + } +#else return error; +#endif decoder.builder.metrics_only = 1; decoder.builder.load_points = 0; @@ -202,7 +215,10 @@ } psaux->t1_decoder_funcs->done( &decoder ); - +#ifdef __REACTOS__ + free(&decoder); +#undef decoder +#endif return FT_Err_Ok; } @@ -215,7 +231,13 @@ FT_Fixed* advances ) { T1_Face face = (T1_Face)t1face; +#ifdef __REACTOS__ + T1_DecoderRec *decoder = malloc(sizeof(T1_DecoderRec)); +/* Ugly but it allows us to reduce the diff */ +#define decoder (*decoder) +#else T1_DecoderRec decoder; +#endif T1_Font type1 = &face->type1; PSAux_Service psaux = (PSAux_Service)face->psaux; FT_UInt nn; @@ -227,6 +249,9 @@ for ( nn = 0; nn < count; nn++ ) advances[nn] = 0; +#ifdef __REACTOS__ + free(&decoder); +#endif return FT_Err_Ok; } @@ -240,7 +265,14 @@ FT_RENDER_MODE_NORMAL, T1_Parse_Glyph ); if ( error ) +#ifdef __REACTOS__ + { + free(&decoder); + return error; + } +#else return error; +#endif decoder.builder.metrics_only = 1; decoder.builder.load_points = 0; @@ -260,7 +292,10 @@ else advances[nn] = 0; } - +#ifdef __REACTOS__ + free(&decoder); +#undef decoder +#endif return FT_Err_Ok; } @@ -273,7 +308,13 @@ { T1_GlyphSlot glyph = (T1_GlyphSlot)t1glyph; FT_Error error; +#ifdef __REACTOS__ + T1_DecoderRec *decoder = malloc(sizeof(T1_DecoderRec)); +/* Ugly but it allows us to reduce the diff */ +#define decoder (*decoder) +#else T1_DecoderRec decoder; +#endif T1_Face face = (T1_Face)t1glyph->face; FT_Bool hinting; T1_Font type1 = &face->type1; @@ -512,6 +553,10 @@ if ( must_finish_decoder ) decoder_funcs->done( &decoder ); +#ifdef __REACTOS__ + free(&decoder); +#undef decoder +#endif return error; }