40#include FT_INTERNAL_DEBUG_H
41#include FT_SERVICE_CFF_TABLE_LOAD_H
62#define FT_COMPONENT trace_cf2interp
71 hintmask->error =
error;
78 return hintmask->isValid;
85 return hintmask->isNew;
93 hintmask->isNew =
val;
103 return hintmask->mask;
186 sizeof ( hintmask->mask ) /
sizeof ( hintmask->mask[0] ) );
189 for (
i = 0;
i < hintmask->byteCount;
i++ )
190 hintmask->mask[
i] = 0xFF;
194 hintmask->mask[hintmask->byteCount - 1] &= ~
mask;
295 if (
font->isT1 && !
font->decoder->flex_state && !*haveWidth )
296 FT_ERROR((
"cf2_doStems (Type 1 mode):"
297 " No width. Use hsbw/sbw as first op\n" ));
299 if ( !
font->isT1 && hasWidthArg && !*haveWidth )
303 if (
font->decoder->width_only )
306 for (
i = hasWidthArg ? 1 : 0;
i <
count;
i += 2 )
340 FT_Bool doConditionalLastRead )
352 top = isHFlex ? 9 : 10;
354 for (
i = 0;
i <
top;
i++ )
356 vals[
i + 2] = vals[
i];
357 if ( readFromStack[
i] )
365 if ( doConditionalLastRead )
375 vals[12] =
ADD_INT32( vals[10], lastVal );
381 vals[13] =
ADD_INT32( vals[11], lastVal );
386 if ( readFromStack[10] )
392 if ( readFromStack[11] )
399 for (
j = 0;
j < 2;
j++ )
429 delta =
base + numBlends;
431 for (
i = 0;
i < numBlends;
i++ )
439 for (
j = 1;
j < blend->
lenBV;
j++ )
493 FT_Int known_othersubr_result_cnt = 0;
497#define PS_STORAGE_SIZE 3
512 FT_UInt32 instructionLimit = 20000000UL;
530 if (!glyphPath)
return;
532#define glyphPath (*glyphPath)
610 lastError =
FT_THROW( Out_Of_Memory );
633 FT_ASSERT( known_othersubr_result_cnt == 0 ||
641 if ( charstringIndex )
659 if ( !initial_map_ready &&
676 if ( result_cnt > 0 &&
686 if ( large_int && !( op1 >= 32 || op1 ==
cf2_escDIV ) )
688 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
689 " no `div' after large integer\n" ));
700 if ( instructionLimit == 0 )
702 lastError =
FT_THROW( Invalid_Glyph_Format );
712 FT_TRACE4((
" unknown op (%d)\n", op1 ));
721 if (
font->blend.usedBV )
724 lastError =
FT_THROW( Invalid_Glyph_Format );
748 if ( !
font->blend.font )
750 lastError =
FT_THROW( Invalid_Glyph_Format );
755 if (
font->cffload->blend_check_vector( &
font->blend,
760 lastError =
font->cffload->blend_build_vector( &
font->blend,
770 if ( numBlends > stackSize )
772 lastError =
FT_THROW( Invalid_Glyph_Format );
793 " invalid horizontal hint mask\n" ));
823 " invalid vertical hint mask\n" ));
846 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
847 " No width. Use hsbw/sbw as first op\n" ));
896 FT_TRACE4(( isX ?
" hlineto\n" :
" vlineto\n" ));
962 FT_TRACE4((
" unknown op (%d)\n", op1 ));
987 lastError =
FT_THROW( Invalid_Glyph_Format );
995 (
size_t)charstringIndex + 1 );
1015 FT_TRACE4((
" (idx %d, entering level %d)\n",
1017 charstringIndex + 1 ));
1023 lastError =
FT_THROW( Invalid_Glyph_Format );
1030 FT_TRACE4((
" (idx %d, entering level %d)\n",
1032 charstringIndex + 1 ));
1038 lastError =
FT_THROW( Invalid_Glyph_Format );
1043 charstringIndex += 1;
1048 FT_TRACE4((
" return (leaving level %d)\n", charstringIndex ));
1050 if ( charstringIndex < 1 )
1053 lastError =
FT_THROW( Invalid_Glyph_Format );
1075 static const FT_Bool readFromStack[12] =
1099 static const FT_Bool readFromStack[12] =
1123 static const FT_Bool readFromStack[12] =
1147 static const FT_Bool readFromStack[12] =
1176 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1182 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1212 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1241 isV ? &vStemHintArray : &hStemHintArray,
1298 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1302 CF2_Int bchar_index, achar_index;
1305#ifdef FT_CONFIG_OPTION_INCREMENTAL
1324 lastError =
FT_THROW( Invalid_Glyph_Format );
1330 FT_ERROR((
" unexpected seac\n" ));
1331 lastError =
FT_THROW( Invalid_Glyph_Format );
1338#ifdef FT_CONFIG_OPTION_INCREMENTAL
1340 !
face->root.internal->incremental_interface )
1346 "cf2_interpT2CharString: (Type 1 seac)"
1347 " glyph names table not available in this font\n" ));
1348 lastError =
FT_THROW( Invalid_Glyph_Format );
1355#ifdef FT_CONFIG_OPTION_INCREMENTAL
1356 if (
face->root.internal->incremental_interface )
1359 bchar_index = bchar;
1360 achar_index = achar;
1371 if ( bchar_index < 0 || achar_index < 0 )
1374 "cf2_interpT2CharString: (Type 1 seac)"
1375 " invalid seac character code arguments\n" ));
1376 lastError =
FT_THROW( Invalid_Glyph_Format );
1398 subg = loader->current.subglyphs;
1401 subg->index = bchar_index;
1409 subg->index = achar_index;
1416 glyph->
subglyphs = loader->base.subglyphs;
1417 glyph->
format = FT_GLYPH_FORMAT_COMPOSITE;
1419 loader->current.num_subglyphs = 2;
1490 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1521 if ( initial_map_ready )
1586 if (
font->isT1 && large_int )
1638 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1668 known_othersubr_result_cnt = 0;
1693 goto Unexpected_OtherSubr;
1695 if ( initial_map_ready &&
1699 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
1700 " unexpected flex end\n" ));
1701 lastError =
FT_THROW( Invalid_Glyph_Format );
1709 known_othersubr_result_cnt = 2;
1714 goto Unexpected_OtherSubr;
1716 if ( !initial_map_ready )
1733 goto Unexpected_OtherSubr;
1735 if ( !initial_map_ready )
1740 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
1741 " missing flex start\n" ));
1742 lastError =
FT_THROW( Invalid_Glyph_Format );
1751 if (
idx > 0 &&
idx < 7 )
1761 lastError =
FT_THROW( Invalid_Glyph_Format );
1768 flexStore[idx2 - 2] = curX;
1769 flexStore[idx2 - 1] = curY;
1771 if (
idx == 3 ||
idx == 6 )
1785 goto Unexpected_OtherSubr;
1787 if ( initial_map_ready )
1799 known_othersubr_result_cnt = 1;
1823 "cf2_interpT2CharString:"
1824 " unexpected multiple masters operator\n" ));
1825 lastError =
FT_THROW( Invalid_Glyph_Format );
1829 num_points = (
FT_UInt)subr_no - 13 +
1835 "cf2_interpT2CharString:"
1836 " incorrect number of multiple masters arguments\n" ));
1837 lastError =
FT_THROW( Invalid_Glyph_Format );
1857 delta = opIdx + num_points;
1859 for ( nn = 0; nn < num_points; nn++ )
1877 known_othersubr_result_cnt = (
FT_Int)num_points;
1892 goto Unexpected_OtherSubr;
1899 goto Unexpected_OtherSubr;
1917 goto Unexpected_OtherSubr;
1925 known_othersubr_result_cnt = 1;
1938 goto Unexpected_OtherSubr;
1946 known_othersubr_result_cnt = 1;
1959 goto Unexpected_OtherSubr;
1966 known_othersubr_result_cnt = 1;
1979 goto Unexpected_OtherSubr;
1985 goto Unexpected_OtherSubr;
1990 known_othersubr_result_cnt = 1;
2003 goto Unexpected_OtherSubr;
2009 goto Unexpected_OtherSubr;
2026 goto Unexpected_OtherSubr;
2032 goto Unexpected_OtherSubr;
2036 known_othersubr_result_cnt = 1;
2064 goto Unexpected_OtherSubr;
2073 known_othersubr_result_cnt = 1;
2086 goto Unexpected_OtherSubr;
2097 known_othersubr_result_cnt = 1;
2102 if (
arg_cnt >= 0 && subr_no >= 0 )
2108 "cf2_interpT2CharString (Type 1 mode):"
2109 " unknown othersubr [%d %d], wish me luck\n",
2127 Unexpected_OtherSubr:
2128 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2129 " invalid othersubr [%d %d]\n",
2131 lastError =
FT_THROW( Invalid_Glyph_Format );
2139 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
2144 if ( known_othersubr_result_cnt > 0 )
2146 known_othersubr_result_cnt--;
2151 if ( result_cnt == 0 )
2153 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2154 " no more operands for othersubr\n" ));
2155 lastError =
FT_THROW( Invalid_Glyph_Format );
2275 if ( new_root ==
root )
2367 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
2372 if ( !initial_map_ready )
2392 FT_ERROR((
"cf2_interpT2CharString:"
2393 " unexpected `setcurrentpoint'\n" ));
2417 FT_TRACE4((
" unknown op (%d)\n", op1 ));
2444 if ( initial_map_ready )
2452 if (
font->isT1 && !initial_map_ready )
2454 FT_TRACE5((
"cf2_interpT2CharString (Type 1 mode): "
2455 "Build initial hintmap, rewinding...\n" ));
2460 initial_map_ready =
TRUE;
2474 while ( charstringIndex > 0 )
2476 FT_TRACE4((
" return (leaving level %d)\n", charstringIndex ));
2484 charstring->ptr = charstring->start;
2522 lastError =
FT_THROW( Invalid_Glyph_Format );
2576 FT_TRACE4((
"cf2_interpT2CharString: invalid hint mask\n" ));
2618 if (!counterHintMap)
2620 lastError = FT_Err_Out_Of_Memory;
2624#define counterHintMap (*counterHintMap)
2649 free(&counterHintMap);
2658 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2659 " No width. Use hsbw/sbw as first op\n" ));
2683 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2684 " No width. Use hsbw/sbw as first op\n" ));
2753 count = count1 & ~2U;
2798 count = count1 & ~2U;
2847 count = count1 & ~2U;
2850 FT_TRACE4(( alternate ?
" hvcurveto\n" :
" vhcurveto\n" ));
2940 else if ( op1 <= 250 )
2957 else if ( op1 <= 254 )
3006 if (
v > 32000 ||
v < -32000 )
3009 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
3010 " no `div' after large integer\n" ));
3037 " charstring ends without ENDCHAR\n" ));
3057#undef counterHintMap
static struct _test_info results[8]
_STLP_MOVE_TO_STD_NAMESPACE void _STLP_CALL advance(_InputIterator &__i, _Distance __n)
#define T1_MAX_SUBRS_CALLS
FT_DivFix(FT_Long a, FT_Long b)
#define FT_SUBGLYPH_FLAG_USE_MY_METRICS
struct FT_GlyphSlotRec_ * FT_GlyphSlot
#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES
FT_MulFix(FT_Long a, FT_Long b)
#define FT_ASSERT(condition)
#define FT_ERROR(varformat)
#define FT_TRACE5(varformat)
#define FT_TRACE4(varformat)
cannot open resource broken file module version is too low unimplemented feature broken offset within table missing module invalid glyph index unsupported glyph image format invalid outline too many hints invalid object handle invalid module handle invalid size handle invalid charmap handle invalid stream handle too many extensions unlisted object invalid stream seek invalid stream read invalid frame operation invalid frame read raster corrupted negative height while rastering invalid opcode stack overflow bad argument invalid reference found ENDF opcode in execution stream invalid code range too many function definitions SFNT font table missing name table missing horizontal PostScript(post) table missing" ) FT_ERRORDEF_( Invalid_Horiz_Metrics
FT_GlyphLoader_Prepare(FT_GlyphLoader loader)
FT_GlyphLoader_CheckSubGlyphs(FT_GlyphLoader loader, FT_UInt n_subs)
size_t * ft_hash_num_lookup(FT_Int num, FT_Hash hash)
FT_BEGIN_HEADER typedef signed long FT_Pos
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLuint GLuint GLuint GLuint arg1
GLdouble GLdouble GLdouble GLdouble top
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
GLenum GLuint GLint GLenum face
GLenum GLuint GLenum GLsizei const GLchar * buf
GLboolean GLenum GLenum GLvoid * values
GLfloat GLfloat GLfloat v2
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
int jpeg_marker_parser_method routine
static char memory[1024 *256]
cf2_arrstack_getPointer(const CF2_ArrStack arrstack, size_t idx)
cf2_arrstack_setCount(CF2_ArrStack arrstack, size_t numElements)
cf2_arrstack_push(CF2_ArrStack arrstack, const void *ptr)
cf2_arrstack_finalize(CF2_ArrStack arrstack)
cf2_arrstack_init(CF2_ArrStack arrstack, FT_Memory memory, FT_Error *error, size_t sizeItem)
cf2_arrstack_getBuffer(const CF2_ArrStack arrstack)
cf2_arrstack_clear(CF2_ArrStack arrstack)
cf2_arrstack_size(const CF2_ArrStack arrstack)
FT_BEGIN_HEADER struct CF2_ArrStackRec_ * CF2_ArrStack
FT_BEGIN_HEADER struct CF2_ArrStackRec_ CF2_ArrStackRec
cf2_setError(FT_Error *error, FT_Error value)
#define CF2_SET_ERROR(error, e)
#define CF2_OPERAND_STACK_SIZE
cf2_freeSeacComponent(PS_Decoder *decoder, CF2_Buffer buf)
cf2_freeT1SeacComponent(PS_Decoder *decoder, CF2_Buffer buf)
cf2_initLocalRegionBuffer(PS_Decoder *decoder, CF2_Int subrNum, CF2_Buffer buf)
cf2_getNominalWidthX(PS_Decoder *decoder)
cf2_initGlobalRegionBuffer(PS_Decoder *decoder, CF2_Int subrNum, CF2_Buffer buf)
cf2_getT1SeacComponent(PS_Decoder *decoder, FT_UInt glyph_index, CF2_Buffer buf)
cf2_getMaxstack(PS_Decoder *decoder)
cf2_getDefaultWidthX(PS_Decoder *decoder)
cf2_getSeacComponent(PS_Decoder *decoder, CF2_Int code, CF2_Buffer buf)
cf2_glyphpath_moveTo(CF2_GlyphPath glyphpath, CF2_Fixed x, CF2_Fixed y)
cf2_glyphpath_finalize(CF2_GlyphPath glyphpath)
cf2_hintmap_build(CF2_HintMap hintmap, CF2_ArrStack hStemHintArray, CF2_ArrStack vStemHintArray, CF2_HintMask hintMask, CF2_Fixed hintOrigin, FT_Bool initialMap)
cf2_glyphpath_curveTo(CF2_GlyphPath glyphpath, CF2_Fixed x1, CF2_Fixed y1, CF2_Fixed x2, CF2_Fixed y2, CF2_Fixed x3, CF2_Fixed y3)
cf2_glyphpath_closeOpenPath(CF2_GlyphPath glyphpath)
cf2_glyphpath_lineTo(CF2_GlyphPath glyphpath, CF2_Fixed x, CF2_Fixed y)
cf2_hintmap_init(CF2_HintMap hintmap, CF2_Font font, CF2_HintMap initialMap, CF2_ArrStack hintMoves, CF2_Fixed scale)
cf2_glyphpath_init(CF2_GlyphPath glyphpath, CF2_Font font, CF2_OutlineCallbacks callbacks, CF2_Fixed scaleY, CF2_ArrStack hStemHintArray, CF2_ArrStack vStemHintArray, CF2_HintMask hintMask, CF2_Fixed hintOriginY, const CF2_Blues blues, const FT_Vector *fractionalTranslation)
cf2_hintmask_isNew(const CF2_HintMask hintmask)
static void cf2_doFlex(CF2_Stack opStack, CF2_Fixed *curX, CF2_Fixed *curY, CF2_GlyphPath glyphPath, const FT_Bool *readFromStack, FT_Bool doConditionalLastRead)
cf2_hintmask_getMaskPtr(CF2_HintMask hintmask)
static size_t cf2_hintmask_setCounts(CF2_HintMask hintmask, size_t bitCount)
static void cf2_doStems(const CF2_Font font, CF2_Stack opStack, CF2_ArrStack stemHintArray, CF2_Fixed *width, FT_Bool *haveWidth, CF2_Fixed hintOffset)
cf2_hintmask_setAll(CF2_HintMask hintmask, size_t bitCount)
static void cf2_doBlend(const CFF_Blend blend, CF2_Stack opStack, CF2_UInt numBlends)
static void cf2_hintmask_read(CF2_HintMask hintmask, CF2_Buffer charstring, size_t bitCount)
cf2_hintmask_isValid(const CF2_HintMask hintmask)
cf2_hintmask_init(CF2_HintMask hintmask, FT_Error *error)
cf2_interpT2CharString(CF2_Font font, CF2_Buffer buf, CF2_OutlineCallbacks callbacks, const FT_Vector *translation, FT_Bool doingSeac, CF2_Fixed curX, CF2_Fixed curY, CF2_Fixed *width)
cf2_hintmask_setNew(CF2_HintMask hintmask, FT_Bool val)
ps_builder_close_contour(PS_Builder *builder)
ps_builder_check_points(PS_Builder *builder, FT_Int count)
cf2_buf_readByte(CF2_Buffer buf)
cf2_buf_isEnd(CF2_Buffer buf)
FT_BEGIN_HEADER struct CF2_BufferRec_ CF2_BufferRec
FT_BEGIN_HEADER struct CF2_BufferRec_ * CF2_Buffer
cf2_stack_pushInt(CF2_Stack stack, CF2_Int val)
cf2_stack_popFixed(CF2_Stack stack)
cf2_stack_count(CF2_Stack stack)
cf2_stack_setReal(CF2_Stack stack, CF2_UInt idx, CF2_Fixed val)
cf2_stack_clear(CF2_Stack stack)
cf2_stack_popInt(CF2_Stack stack)
cf2_stack_pop(CF2_Stack stack, CF2_UInt num)
cf2_stack_free(CF2_Stack stack)
cf2_stack_roll(CF2_Stack stack, CF2_Int count, CF2_Int shift)
cf2_stack_init(FT_Memory memory, FT_Error *e, FT_UInt stackSize)
cf2_stack_pushFixed(CF2_Stack stack, CF2_Fixed val)
cf2_stack_getReal(CF2_Stack stack, CF2_UInt idx)
static int sum(int x_, int y_)
CF2_ArrStackRec hintMoves
CF2_HintMapRec initialHintMap
FT_Byte mask[(CF2_MAX_HINTS+7)/8]
FT_Slot_Internal internal
CFF_SubFont current_subfont
t1_lookup_glyph_by_stdcharcode_ps(PS_Decoder *decoder, FT_Int charcode)
struct T1_FaceRec_ * T1_Face
static unsigned arg_cnt(const DISPPARAMS *dp)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList