[psaux, cff] Move cff_random into psaux service.

NOTE: Does not compile!

Minor fix to allow both `cff' and `psaux' to use cff_random.

* src/cff/cffload.c (cff_random): Moved to...
* src/psaux/psobjs.c: Here.
* src/cff/cffload.h: Move corresponding declaration to src/psaux/psobjs.h.

* include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the function here...
* src/psaux/psauxmod.c: And here.

* src/cff/cffload.c, src/psaux/cf2intrp.c: Updated code.
This commit is contained in:
Ewald Hew 2017-06-08 15:31:50 +08:00
parent 3fabdc08e9
commit 01eda73954
7 changed files with 26 additions and 17 deletions

View File

@ -1067,6 +1067,10 @@ FT_BEGIN_HEADER
FT_Offset length,
FT_UShort seed );
FT_UInt32
(*cff_random)( FT_UInt32 r );
T1_CMap_Classes t1_cmap_classes;
/* fields after this comment line were added after version 2.1.10 */

View File

@ -1945,18 +1945,6 @@
}
FT_LOCAL_DEF( FT_UInt32 )
cff_random( FT_UInt32 r )
{
/* a 32bit version of the `xorshift' algorithm */
r ^= r << 13;
r ^= r >> 17;
r ^= r << 5;
return r;
}
/* There are 3 ways to call this function, distinguished by code. */
/* */
/* . CFF_CODE_TOPDICT for either a CFF Top DICT or a CFF Font DICT */
@ -1980,6 +1968,8 @@
CFF_FontRecDict top = &subfont->font_dict;
CFF_Private priv = &subfont->private_dict;
PSAux_Service psaux = (PSAux_Service)face->psaux;
FT_Bool cff2 = FT_BOOL( code == CFF2_CODE_TOPDICT ||
code == CFF2_CODE_FONTDICT );
FT_UInt stackSize = cff2 ? CFF2_DEFAULT_STACK
@ -2094,7 +2084,7 @@
do
{
driver->random_seed =
(FT_Int32)cff_random( (FT_UInt32)driver->random_seed );
(FT_Int32)psaux->cff_random( (FT_UInt32)driver->random_seed );
} while ( driver->random_seed < 0 );
}
@ -2107,7 +2097,7 @@
do
{
face->root.internal->random_seed =
(FT_Int32)cff_random( (FT_UInt32)face->root.internal->random_seed );
(FT_Int32)psaux->cff_random( (FT_UInt32)face->root.internal->random_seed );
} while ( face->root.internal->random_seed < 0 );
}

View File

@ -61,9 +61,6 @@ FT_BEGIN_HEADER
FT_UInt cid );
FT_LOCAL( FT_UInt32 )
cff_random( FT_UInt32 r );
FT_LOCAL( FT_Error )
cff_font_load( FT_Library library,
FT_Stream stream,

View File

@ -47,6 +47,7 @@
#include "cf2intrp.h"
#include "cf2error.h"
#include "psobjs.h" /* for cff_random */
/*************************************************************************/

View File

@ -143,6 +143,7 @@
&t1_builder_funcs,
&t1_decoder_funcs,
t1_decrypt,
cff_random,
(const T1_CMap_ClassesRec*) &t1_cmap_classes,

View File

@ -2044,4 +2044,16 @@
}
FT_LOCAL_DEF( FT_UInt32 )
cff_random( FT_UInt32 r )
{
/* a 32bit version of the `xorshift' algorithm */
r ^= r << 13;
r ^= r >> 17;
r ^= r << 5;
return r;
}
/* END */

View File

@ -247,6 +247,10 @@ FT_BEGIN_HEADER
FT_UShort seed );
FT_LOCAL( FT_UInt32 )
cff_random( FT_UInt32 r );
FT_END_HEADER
#endif /* PSOBJS_H_ */