reactos/sdk/lib/3rdparty/freetype/freetype_ros.diff

474 lines
13 KiB
Diff

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;
}