PageRenderTime 81ms CodeModel.GetById 30ms app.highlight 15ms RepoModel.GetById 1ms app.codeStats 2ms

/modules/freetype2/ChangeLog.23

http://github.com/zpao/v8monkey
Unknown | 7948 lines | 5475 code | 2473 blank | 0 comment | 0 complexity | 49b98ce96ffcf9f7d245be2f8df8e54c MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   12010-02-13  Werner Lemberg  <wl@gnu.org>
   2
   3	* Version 2.3.12 released.
   4	==========================
   5
   6
   7	Tag sources with `VER-2-3-12'.
   8
   9	* docs/CHANGES: Updated.
  10
  11	* docs/VERSION.DLL: Update documentation and bump version number to
  12	2.3.12.
  13
  14	* README, Jamfile (RefDoc),
  15	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  16	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  17	builds/win32/visualc/freetype.dsp,
  18	builds/win32/visualc/freetype.vcproj,
  19	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  20	builds/win32/visualce/freetype.vcproj,
  21	builds/win32/visualce/index.html,
  22	builds/wince/vc2005-ce/freetype.vcproj,
  23	builds/wince/vc2005-ce/index.html,
  24	builds/wince/vc2008-ce/freetype.vcproj,
  25	builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/.
  26
  27	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
  28
  29	* builds/unix/configure.raw (version_info): Set to 10:0:4.
  30
  312010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  32
  33	Improve autotool version checking to work with beta releases.
  34
  35	* autogen.sh (check_tool_version): Improve the extraction of version
  36	number from "tool --version" output.  Some beta releases of
  37	autotools have extra strings before version number.
  38
  392010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  40
  41	Fix overallocating bug in FT_Outline_New_Internal().
  42
  43	* src/base/ftoutln.c (FT_Outline_New_Internal): The length of
  44	FT_Outline->points[] should be numPoints, not 2 * numPoints.
  45	Found by Paul Messmer, see
  46	http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
  47
  482010-02-10  Ken Sharp  <ken.sharp@artifex.com>
  49
  50	Really fix Savannah bug #28678 (part 2).
  51
  52	Since we consider `sbw' for the horizontal direction only, we still have
  53	to synthesize vertical metrics if the user wants to use the vertical
  54	writing direction.
  55
  56	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
  57	(cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph):
  58	Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is
  59	set.
  60
  612010-02-10  Ken Sharp  <ken.sharp@artifex.com>
  62
  63	Really fix Savannah bug #28678 (part 1).
  64
  65	After long discussion, we now consider the character width vector
  66	(wx,wy) returned by the `sbw' Type 1 operator as being part of *one*
  67	direction only.  For example, if you are using the horizontal
  68	writing direction, you get the horizontal and vertical components of
  69	the advance width for this direction.  Note that OpenType and CFF fonts
  70	don't have such a vertical component; instead, the GPOS table can be
  71	used to generate two-dimensional advance widths (but this isn't
  72	handled by FreeType).
  73
  74	* include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
  75	`advance_v' field to hold the vertical component of the advance
  76	value.
  77
  78	* src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c
  79	(cff_slot_load), src/type1/t1gload.c
  80	(T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c
  81	(cid_load_glyph): Use it.
  82
  832010-02-08  Werner Lemberg  <wl@gnu.org>
  84
  85	* devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
  86
  872010-02-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  88
  89	Prevent NULL pointer dereference passed to FT_Module_Requester.
  90
  91	* src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
  92	* src/psnames/psmodule.c (psnames_get_interface): Ditto.
  93
  94	* src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
  95	* src/truetype/ttdriver.c (tt_get_interface): Ditto.
  96
  972010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  98
  99	Fix memory leaks in previous patch.
 100
 101	* src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
 102	allocated for face->root.family_name and style_name.
 103
 1042010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 105
 106	New parameters for FT_Open_Face() to ignore preferred family names.
 107
 108	Preferred family names should be used for legacy systems that
 109	can hold only a few faces (<= 4) for a family name. Suggested by
 110	Andreas Heinrich.
 111	http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
 112
 113	* include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
 114	FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
 115
 116	* src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and
 117	ignore preferred family and subfamily names if requested.
 118
 1192010-01-27  Ken Sharp  <ken.sharp@artifex.com>
 120
 121	Fix Savannah bug #28678.
 122
 123	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
 124	(cid_load_glyph): Handle vertical metrics correctly.
 125
 126	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle
 127	vertical metrics correctly.
 128	(T1_Load_Glyph): Don't synthesize vertical metrics.
 129
 1302010-01-14  Werner Lemberg  <wl@gnu.org>
 131
 132	Make FT_Set_Transform work if no renderer is available.
 133
 134	* src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
 135	if no renderer is compiled into the library.
 136
 1372010-01-14  Werner Lemberg  <wl@gnu.org>
 138
 139	Fix compilation warning.
 140
 141	* src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
 142	* src/base/ftobjc.s: Include ftbase.h conditionally.
 143
 1442010-01-11  Kwang Yul Seo  <skyul@company100.net>
 145
 146	Provide inline assembly code for RVCT compiler.
 147	This is Savannah patch #7059.
 148
 149	* include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
 150	FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
 151
 1522010-01-08  Ken Sharp  <ken.sharp@artifex.com>
 153
 154	Fix Savannah bug #28521.
 155
 156	Issue #28226 involved a work-around for a font which used the
 157	`setcurrentpoint' operator in an invalid way; this operator is only
 158	supposed to be used with the result of OtherSubrs, and the font used
 159	it directly.  The supplied patch removed the block of code which
 160	checked this usage entirely.
 161
 162	This turns out to be a Bad Thing.  If `setcurrentpoint' is being
 163	used correctly it should reset the flex flag in the decoder.  If we
 164	don't do this then the flag never gets reset and we omit any further
 165	contours from the glyph (at least until we close the path or
 166	similar).
 167
 168	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
 169	<op_setcurrentpoint>: Handle `flex_state' correctly.
 170
 1712010-01-05  Werner Lemberg  <wl@gnu.org>
 172
 173	Apply reports from clang static analyzer.
 174
 175	* src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c
 176	(FT_Stroker_ParseOutline), src/base/ftsynth.c
 177	(FT_GlyphSlot_Embolden): Remove dead code.
 178
 179	* src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
 180	`offset_i' and `length_i'.
 181
 1822010-01-05  Ralph Giles  <giles@ghostscript.com>
 183
 184	Enable the incremental font interface by default.
 185
 186	Ghostscript requires the incremental font interface for handling
 187	some Postscript documents.  It is moving to using FreeType as its
 188	primary renderer; supporting this in the default build makes it
 189	Ghostscript to be linked against the system FreeType when one is
 190	available.
 191
 192	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
 193	Uncomment.
 194
 1952010-01-05  Werner Lemberg  <wl@gnu.org>
 196
 197	Fix Savannah bug #28395.
 198
 199	* src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
 200	(T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
 201	is used.
 202
 2032010-01-05  Ken Sharp  <ken.sharp@artifex.com>
 204
 205	Make Type 1 `seac' operator work with incremental interface.
 206	This fixes Savannah bug #28480.
 207
 208	* src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
 209	if incremental interface is used.
 210
 2112010-01-04  Ken Sharp  <ken.sharp@artifex.com>
 212
 213	Make incremental interface work with TrueType fonts.
 214	This fixes Savannah bug #28478.
 215
 216	* src/truetype/ttgload.c (load_truetype_glyph): Don't check
 217	`glyf_offset' if incremental interface is used.
 218
 2192009-12-31  Lars Abrahamsson  <wonko@opera.com>
 220
 221	Make compilation with FT_CONFIG_OPTION_PIC work again.
 222
 223	* src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
 224	Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
 225
 226	* src/base/ftinit.c (ft_destroy_default_module_classes,
 227	ft_create_default_module_classes): Use proper casts (needed for C++
 228	compilation).
 229
 230	* src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
 231
 2322009-12-22  Marc Kleine-Budde  <mkl@pengutronix.de>
 233
 234	Make freetype-config aware of $SYSROOT.
 235	This is Savannah patch #7040.
 236
 237	* builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
 238	appropriate.
 239
 2402009-12-20  Werner Lemberg  <wl@gnu.org>
 241
 242	Fix compiler warning.
 243	Reported by Sean.
 244
 245	* src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty
 246	source files; however, some compilers warn about an unused variable
 247	declaration.  This is now replaced with a typedef.
 248
 2492009-12-18  Werner Lemberg  <wl@gnu.org>
 250
 251	Fix Savannah bug #28320.
 252
 253	There exist corrupt, subsetted fonts (embedded in PDF files) which
 254	contain a private dict that ends with an unterminated floating point
 255	number (no operator following).  We now ignore this error (as
 256	acrobat does).
 257
 258	* src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
 259	unterminated floating point numbers.
 260
 2612009-12-16  Werner Lemberg  <wl@gnu.org>
 262
 263	Really fix compiler warnings.
 264	Reported by Sean.
 265
 266	* src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
 267	GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
 268
 2692009-12-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 270
 271	Improve configure.raw to copy some options from CFLAGS to LDFLAGS.
 272	The linker of Mac OS X 10.6 is sensitive to the architecture.  If
 273	the architectures are specified explicitly for the C compiler, the
 274	linker requires the architecture specifications too.
 275
 276	* builds/unix/configure.raw: Replace `-isysroot' option parser by
 277	more generic argument parser.
 278
 2792009-12-15  Werner Lemberg  <wl@gnu.org>
 280
 281	Fix compiler warnings.
 282	Reported by Sean.
 283
 284	* src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
 285	type.
 286
 2872009-12-14  Ken Sharp  <ken.sharp@artifex.com>
 288
 289	Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
 290	This fixes Savannah bug #28226.
 291
 292	At least two wild PostScript files of unknown provenance contain
 293	Type 1 fonts, apparently converted from TrueType fonts in earlier
 294	PDF versions of the files, which use the `setcurrentpoint' operator
 295	inappropriately.
 296
 297	FreeType currently throws an error in this case, but Ghostscript and
 298	Adobe Distiller both accept the fonts and ignore the problem.  This
 299	commit #ifdefs out the check so PostScript interpreters using
 300	FreeType can render these files.
 301
 302	The specification says `setcurrentpoint' should only be used to set
 303	the point after a `Subr' call, but these fonts use it to set the
 304	initial point to (0,0).  Unnecessarily so, as they correctly use an
 305	`hsbw' operation which implicitly sets the initial point.
 306
 307	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
 308	<op_setcurrentpoint>: Comment out code.
 309
 3102009-12-14  Bram Tassyns  <bramt@enfocus.be>
 311
 312	Fix parsing of /CIDFontVersion.
 313	This fixes Savannah bug #28287.
 314
 315	* src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
 316	t1tables.h) is of type FT_Fixed.
 317
 3182009-12-14  Werner Lemberg  <wl@gnu.org>
 319
 320	Trace glyph index in CID module.
 321	Suggested in Savannah patch #7023.
 322
 323	* src/cid/cidgload.c (cid_load_glyph): Add tracing message.
 324
 3252009-12-03  Werner Lemberg  <wl@gnu.org>
 326
 327	Fix compiler warnings.
 328
 329	* src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the
 330	proper preprocessor conditional.
 331	* src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
 332
 3332009-11-25  John Tytgat  <John.Tytgat@esko.com>
 334
 335	Better handling of start of `eexec' section.
 336	This fixes Savannah bug #28090.
 337
 338	* src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
 339	characters before start of `eexec' section.
 340
 3412009-11-20  Werner Lemberg  <wl@gnu.org>
 342
 343	Fix Savannah bug #27742.
 344
 345	* src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
 346	zero, using a threshold for `theta'.
 347
 3482009-11-20  Werner Lemberg  <wl@gnu.org>
 349
 350	Fix Savannah bug #28036.
 351
 352	* src/type1/t1afm.c (t1_get_index): Fix comparison.
 353
 3542009-11-16  Werner Lemberg  <wl@gnu.org>
 355
 356	Fix compiler warnings.
 357	Reported by Kevin Blenkinsopp <arqon@promode.org>.
 358
 359	* src/sfnt/ttload.c (check_table_dir): Use proper data type.
 360
 3612009-11-15  Werner Lemberg  <wl@gnu.org>
 362
 363	Really fix FreeDesktop bug #21197.
 364	This also fixes Savannah bug #28021.
 365
 366	* src/autofit/aflatin.c (af_latin_metrics_check_digits),
 367	src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
 368
 3692009-11-15  Werner Lemberg  <wl@gnu.org>
 370
 371	Add tracing messages for advance values.
 372
 373	* src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
 374	(TT_Get_HMetrics, TT_Get_VMetrics): Do it.
 375
 3762009-11-08  Werner Lemberg  <wl@gnu.org>
 377
 378	Fix compiler warning.
 379	Reported by Jeremy Manson <jeremy.manson@gmail.com>.
 380
 381	* src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
 382
 3832009-11-04  Werner Lemberg  <wl@gnu.org>
 384
 385	Remove compiler warning.
 386	Reported by Sean McBride <sean@rogue-research.com>.
 387
 388	* src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
 389	`int', as specified in the printf(3) man page.
 390
 3912009-11-04  Werner Lemberg  <wl@gnu.org>
 392
 393	Fix Savannah bug #27921.
 394
 395	* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
 396	(cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
 397	src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
 398	values for rounding if the argument can be negative.
 399
 4002009-11-03  Bram Tassyns  <bramt@enfocus.be>
 401
 402	Add basic support for Type1 charstrings in CFF.
 403	This fixes Savannah bug #27922.
 404
 405	* src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
 406	`seac', `sbw', and `setcurrentpoint' opcodes.
 407	(cff_compute_bias): Add parameter to indicate the charstring type.
 408	Update all callers.
 409	(cff_operator_seac): Add parameter for side bearing.
 410	(cff_decoder_parse_charstrings): Updated for more Type1 support.
 411
 4122009-11-03  Werner Lemberg  <wl@gnu.org>
 413
 414	Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
 415	Reported by Jeremy Manson <jeremy.manson@gmail.com>.
 416
 417	src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
 418	quickly load the glyph header only.
 419	Update all callers.
 420	(tt_loader_init): Add parameter to quickly load the `glyf' table
 421	only.
 422	Update all callers.
 423	(TT_Load_Glyph): Compute linear advance values for embedded bitmap
 424	glyphs too.
 425
 4262009-11-03  Werner Lemberg  <wl@gnu.org>
 427
 428	Improve code readability.
 429
 430	* src/ttgload.c (load_truetype_glyph): Move metrics calculation
 431	to...
 432	(tt_get_metrics): This new function.
 433
 4342009-10-26  Bram Tassyns  <bramt@enfocus.be>
 435
 436	Fix Savannah bug #27811.
 437
 438	* src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
 439	signed/unsigned mismatch.
 440
 4412009-10-19  Ning Dong  <flintning@163.com>
 442
 443	Fix handling of `get' and `put' CFF instructions.
 444
 445	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
 446	cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
 447	elements for the `get' and `put' operators to 32.
 448	* src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
 449	(CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
 450
 4512009-10-18  Werner Lemberg  <wl@gnu.org>
 452
 453	Fix handling of `dup' CFF instruction.
 454	Problem and solution reported by Ning Dong <flintning@163.com>.
 455
 456	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
 457	Increase `args' by 2, not 1.
 458
 4592009-10-10  Werner Lemberg  <wl@gnu.org>
 460
 461	* Version 2.3.11 released.
 462	==========================
 463
 464
 465	Tag sources with `VER-2-3-11'.
 466
 467	* docs/VERSION.DLL: Update documentation and bump version number to
 468	2.3.11.
 469
 470	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 471	builds/win32/visualc/freetype.dsp,
 472	builds/win32/visualc/freetype.vcproj,
 473	builds/win32/visualce/index.html,
 474	builds/win32/visualce/freetype.dsp,
 475	builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
 476
 477	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
 478
 479	* builds/unix/configure.raw (version_info): Set to 9:22:3.
 480
 4812009-10-10  Werner Lemberg  <wl@gnu.org>
 482
 483	* docs/CHANGES, docs/release: Updated.
 484
 4852009-10-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 486
 487	* src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
 488	truncation.  Reported by Martin von Gagern and Peter Volkov.
 489	https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
 490
 4912009-10-06  Werner Lemberg  <wl@gnu.org>
 492
 493	* Version 2.3.10 released.
 494	==========================
 495
 496
 497	Tag sources with `VER-2-3-10'.
 498
 499	* builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
 500	than a single digit.
 501	(dist): We now use git.
 502
 503	* docs/VERSION.DLL: Update documentation and bump version number to
 504	2.3.10.
 505
 506	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 507	builds/win32/visualc/freetype.dsp,
 508	builds/win32/visualc/freetype.vcproj,
 509	builds/win32/visualce/index.html,
 510	builds/win32/visualce/freetype.dsp,
 511	builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
 512
 513	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
 514
 515	* builds/unix/configure.raw (version_info): Set to 9:21:3.
 516
 5172009-10-06  Werner Lemberg  <wl@gnu.org>
 518
 519	Fix `make multi'.
 520
 521	* src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
 522
 523	* src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
 524
 5252009-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 526
 527	[cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
 528	Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
 529	Now these functions should be called with FTC_Node or FTC_MruNode
 530	variable, and the caller should cast them to appropriate pointers to
 531	concrete data.  These tricky casts can GCC-4.4 optimizer (-O2)
 532	confused and the crashing binaries are generated.
 533
 534	* src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
 535	Now the 4th argument `node' of this function should be typed as
 536	FTC_MruNode.
 537
 538	* src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
 539	implementation, new temporal variable FTC_MruNode `_mrunode' to take
 540	the pointer from FTC_MRULIST_LOOKUP_CMP().  For non-inline
 541	implementation, tricky cast is dropped.
 542
 543	* src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
 544	to FTC_SizeNode.
 545	(FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
 546	`mrunode', and FTC_SIZE_NODE() is inserted.
 547	(FTC_FACE_NODE): New macro casting to FTC_FaceNode.
 548	(FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
 549	`mrunode', and FTC_FACE_NODE() is inserted.
 550
 551	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
 552	`node' from FTC_INode to FTC_Node.  Extra casting macro FTC_NODE()
 553	is dropped.
 554	(FTC_ImageCache_LookupScaler): Ditto.
 555	(FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
 556	FTC_Node.  Extra casting macro FTC_NODE() is dropped.  FTC_SNODE()
 557	is inserted.
 558	(FTC_SBitCache_LookupScaler): Ditto.
 559
 560	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
 561	`node' from FTC_CMapNode to FTC_Node.  Extra casting macro
 562	FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
 563
 5642009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 565
 566	[cache, psaux, type1] Fix for multi build.
 567	In multi build, some cpp functions are left as unresolved symbols.
 568
 569	* src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
 570
 571	* src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
 572	FIXED_TO_INT().
 573	* src/type1/t1gload.c: Ditto.
 574	* src/type1/t1objs.c: Ditto.
 575
 5762009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 577
 578	[autofit] Fix for multi build.
 579
 580	* src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
 581	FT_DECLARE_MODULE() macro in multi build.
 582
 583	* src/autofit/aflatin.c: Include <ft2build.h> to handle
 584	FT_ADVANCES_H correctly in multi build.
 585
 5862009-09-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 587
 588	[cache] Check the face filled by FTC_Manager_LookupFace().
 589
 590	* src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
 591	immediately if FTC_Manager_LookupFace() fills face by NULL.  Such
 592	case can occur when the code is optimized by GCC-4.2.x.
 593
 5942009-09-23  Werner Lemberg  <wl@gnu.org>
 595
 596	* docs/CHANGES: Updated.
 597
 5982009-09-12  Werner Lemberg  <wl@gnu.org>
 599
 600	[raster] Fix 5-levels grayscale output.
 601	This was broken since version 2.3.0.
 602
 603	* src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
 604	were then computed dynamically).
 605	(Vertical_Gray_Sweep_Step): Updated.
 606
 607	(ft_black_render): Initialize `worker->gray_lines' (problem found by
 608	valgrind).
 609
 610	(FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
 611	comment out.
 612
 6132009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 614
 615	Improve configure.raw for cross build.
 616
 617	* builds/unix/configure.raw: Remove temporal files created by the
 618	suffix checking for CC_BUILD.  Set XX_ANSIFLAGS and XX_CFLAGS when
 619	cross compiler is GCC.  AC_PROG_CC checks whether the cross compiler
 620	is GCC, its result is stored in GCC.
 621
 6222009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 623
 624	[BDF] Modify hash API to take size_t value instead of void *.
 625
 626	The hash API in BDF driver is designed to be generic, it takes
 627	void * typed data.  But BDF driver always gives an unsigned long
 628	integer (the index to a property).  To reduce non-essential
 629	casts from unsigned long to void* and from void* to unsigned
 630	long, the hash API is changed to take size_t integer.
 631	The issue of incompatible cast between unsigned long and void*
 632	on LLP64 platform is reported by NightStrike from MinGW-Win64
 633	project.  See
 634	http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
 635
 636	* src/bdf/bdf.h: The type of hashnode->data is changed from
 637	void* to size_t.
 638
 639	* src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
 640	void* data.
 641	(bdf_create_property): Get the name length of new property by
 642	size_t variable, with a cut-off at FT_ULONG_MAX.
 643	(_bdf_set_default_spacing): Get the name length of the face by
 644	size_t variable, with a cut-off at 256.
 645	(bdf_get_property): Get the property id by size_t variable to
 646	reduce the casts between 32-bit prop ID & hashnode->data during
 647	simple copying.
 648	(_bdf_add_property): Ditto.
 649	(_bdf_parse_start): Calculate the index to the property array
 650	by size_t variable.
 651	(bdf_get_font_property): Drop a cast to unsigned long.
 652
 6532009-09-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 654
 655	[Win64] Improve the computation of random seed from stack address.
 656
 657	On LLP64 platform, the conversion from pointer to FT_Fixed need
 658	to drop higher 32-bit.  Explict casts are required. Reported by
 659	NightStrike from MinGW-w64 project.  See
 660	http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
 661
 662	* src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
 663
 664	* src/psaux/t1decode.c: Ditto.
 665
 666
 6672009-09-03  Werner Lemberg  <wl@gnu.org>
 668
 669	[raster] Improvements for stand-alone mode.
 670
 671	* src/raster/rules.mk: Don't handle ftmisc.h.  It is needed for
 672	stand-alone mode only.
 673
 674	* src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
 675	FT_Realloc_Func): Copy declarations from ftsystem.h.
 676
 6772009-09-02  Bram Tassyns  <bramt@enfocus.be>
 678
 679	Improve vertical metrics calculation (Savannah bug #27364).
 680
 681	The calculation of `vertBearingX' is not defined in the OTF font
 682	spec so FreeType does a `best effort' attempt.  However, this value
 683	is defined in the PDF and PostScript specs, and that algorithm is
 684	better than the one FreeType currently uses:
 685
 686	  FreeType: Use the middle of the bounding box as the X coordinate
 687	            of the vertical origin.
 688
 689	  Adobe PDF spec: Use the middle of the horizontal advance vector as
 690	                  the X coordinate of the vertical origin.
 691
 692	FreeType's algorithm goes wrong if you have a really small glyph
 693	(like the full-width, circle-like dot at the end of the sentence, as
 694	used in CJK scripts) with large bearings.  With the FreeType
 695	algorithm this dot gets centered on the baseline; with the PDF
 696	algorithm it gets the correct location (in the top right).  Note
 697	that this is a serious issue, it's like printing the dot at the end
 698	of a Roman sentence at the center of the textline instead of on the
 699	baseline like it should. So i believe the PDF spec's algorithm
 700	should be used in FreeType as well.
 701
 702	The `vertBearingY' value for such small glyphs is also very strange
 703	if no `vmtx' information is present, since the height of the bbox is
 704	not representable for the height of the glyph visually (the
 705	whitespace up to the baseline is part of the glyph).  The fix also
 706	includes some code for a better estimate of `vertBearingY'.
 707
 708	* src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
 709	is now calculated as described by the Adobe PDF Spec.  Estimate for
 710	`vertBearingY' now works better for small glyphs completely above or
 711	below the baseline into account.
 712
 713	* src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
 714	calculated as described by the Adobe PDF Spec.  Vertical metrics
 715	information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
 716	was not defined.
 717
 718	* src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
 719	now calculated as described by the Adobe PDF Spec.
 720
 7212009-09-01  John Tytgat  <John.Tytgat@esko.com>
 722
 723	Fix custom cmap for empty Type 1 font (Savannah bug #27294).
 724
 725	* include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
 726	comment to reflect revised code_last meaning.
 727	* src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
 728	(T42_Open_Face): Assign max_char as highest character code + 1 and
 729	use this for T1_EncodingRecRec_::code_last.
 730	* src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
 731	T1_EncodingRecRec_::code_last meaning.
 732
 7332009-08-25  Werner Lemberg  <wl@gnu.org>
 734
 735	Fix rendering of horizontally compressed CFFs.
 736	Bug reported by Ivan Nincic <inincic@pdftron.com>.
 737
 738	* src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
 739	`font_matrix' also.
 740
 741	* docs/CHANGES: Updated.
 742
 7432009-08-03  suyu0925@gmail.com
 744
 745	Don't call `ft_fseek' every time when executing `ft_fread'.
 746
 747	* src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
 748	(ft_ansi_stream_io): Implement it.
 749
 7502009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 751
 752	sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
 753	
 754	* src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
 755	tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
 756	tt_cmap14_variant_chars): Correct mismatches from
 757	FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
 758	are replaced by FT_UInt32 arguments.
 759
 7602009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 761
 762	sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
 763
 764	* src/sfnt/ttcmap.c (tt_cmap12_char_next):
 765	Insert explicit cast from FT_UFast to FT_UInt32
 766	for return value.
 767
 7682009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 769
 770	psaux: Fix a few casts to FT_Int32 value.
 771
 772	* src/psaux/t1decode.c (t1_decoder_parse_charstrings):
 773	Fix a few casts setting `value' from FT_Long to FT_Int32,
 774	because `value' is typed as FT_Int32 since 2009-06-22.
 775
 7762009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 777
 778	sfnt: Fix a data type mismatching with its source.
 779
 780	* src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
 781	type of `gindex' from FT_ULong to FT_UInt because
 782	it is set by FT_UInt tt_cmap13_char_map_binary() or
 783	TT_CMap13->cur_gindex.
 784
 7852009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 786
 787	sfnt: Extend a few local variables to load 32-bit values.
 788
 789	* src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
 790	and `kern' to load 32-bit values.
 791
 7922009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 793
 794	pfr: Extend `num_aux' to take 32-bit value.
 795
 796	* src/pfr/pfrload.c (pfr_phy_font_load): Extend
 797	`num_aux' to load 32-bit value.
 798
 7992009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 800
 801	pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
 802
 803	* src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
 804	as FT_ULong value from PCF file, but truncate it as
 805	int to fit PCF_Face->nprops.  The number of truncated
 806	properties is shown in the trace message.
 807
 8082009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 809
 810	gxvalid: Extend a few local variables to reduce the casts.
 811
 812	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
 813	Extend `type' and `rest' to take FT_ULong values.
 814
 8152009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 816
 817	gxvalid: Extend `settingTable' to take 32-bit offset.
 818
 819	* src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
 820	Extend `settingTable' to take 32-bit offset.
 821
 8222009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 823
 824	autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
 825
 826	* src/autofit/afglobal.c (af_face_globals_is_digit,
 827	af_face_globals_compute_script_coverage): Cast FT_Long
 828	globals->glyph_count to FT_ULong, to compare with FT_UInt
 829	gindex.
 830
 8312009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 832
 833	smooth: Exclude 16-bit system in invalid pitch/height check.
 834
 835	* src/smooth/ftsmooth.c (ft_smooth_render_generic):
 836	pitch and height are typed as FT_UInt but checked to fit
 837	16-bit range, to avoid the overflows.  On 16-bit system,
 838	this checking inserts a conditional that never occurs.
 839
 8402009-07-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 841
 842	cff: Type large constants > 0x7FFF as long for 16-bit systems.
 843
 844	* src/cff/cffload.c (cff_charset_load): Type large
 845	constants > 0x7FFF as long, because normal constants
 846	are typed signed integer that is less than 0x8000 on
 847	16-bit systems.
 848
 8492009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 850
 851	base: Remove an unused variable.
 852
 853	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
 854	unused variable `library'.  glyph->library is used.
 855
 8562009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 857
 858	cache: Check higher bits in flags for non ILP32 systems.
 859
 860	4 public functions ought to take FT_ULong flags, but take
 861	FT_UInt flags. To keep binary compatibility, we drop higher
 862	bits on non ILP32 platforms,
 863		ILP64 systems: No drop occurs.
 864		LP64 systems: Higher bits are not used.
 865		16-bit systems: Drop can occur.
 866	See
 867	http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
 868	These functions will be refined to take FT_ULong flags in
 869	next bump with incompatible API change.
 870
 871	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
 872	Check `flags' in `type', the 2nd argument.
 873	(FTC_SBitCache_Lookup): Ditto.
 874	(FTC_ImageCache_LookupScaler): Check `load_flags',
 875	the 3rd argument.
 876	(FTC_SBitCache_LookupScaler): Ditto.
 877
 8782009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 879
 880	sfnt: Ignore invalid GIDs in glyph name lookup.
 881
 882	* include/freetype/internal/fttrace.h:
 883	New trace module for sfdriver.c is added.
 884
 885	* src/sfnt/sfdriver.c (sfnt_get_name_index):
 886	Restrict glyph name lookup to FT_UInt GID.
 887	Genuine TrueType can hold 16-bit glyphs.
 888
 8892009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 890
 891	pcf: Fix a comparison between FT_Long and FT_ULong.
 892
 893	* src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
 894	if PCF_Face->nemetrics is negative.
 895
 8962009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 897
 898	gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
 899
 900	* src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
 901	Extend the 3rd argument `nFeatureFlags' to FT_ULong.
 902	* src/gxvalid/gxvmort.h: Ditto.
 903
 9042009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 905
 906	sfnt: Insert explicit cast for LP64 system.
 907
 908	* src/sfnt/ttkern.c (tt_face_load_kern): Insert
 909	cast from unsigned long to FT_UInt32.
 910
 9112009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 912
 913	gxvalid: Guarantee `just' table size upto 32-bit.
 914
 915	* src/gxvalid/gxvjust.c (gxv_just_validate):
 916	The type of `offset' is changed from FT_UInt to
 917	FT_Offset, for 16-bit platforms.
 918
 9192009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 920
 921	gxvalid: Guarantee `trak' table size upto 32-bit.
 922
 923	* src/gxvalid/gxvtrak.c (gxv_trak_validate):
 924	The type of `offset' is changed from FT_UInt to
 925	FT_Offset, for 16-bit platforms.
 926
 9272009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 928
 929	type1: Fix a data type mismatching with its source.
 930
 931	* include/freetype/internal/t1types.h: The type of
 932	T1_Face->buildchar is matched with T1_Decorder->top.
 933
 9342009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 935
 936	pfr: Fix a data type mismatching with its source.
 937
 938	* src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
 939	is extended from FT_UInt32 to FT_Offset, because it is
 940	calculated with the pointer difference, in
 941	pfr_extra_item_load_kerning_pairs().
 942
 9432009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 944
 945	pfr: Fix a data type mismatching with its source.
 946
 947	* src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset
 948	is extended from FT_UInt32 to FT_Offset, because it is
 949	calculated with the pointer difference in pfr_phy_font_load().
 950
 9512009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 952
 953	pfr: Fix a data type mismatching with its source.
 954
 955	* src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
 956	is extended from FT_UInt32 to FT_Long, because it is
 957	loaded by FT_STREAM_POS() in pfr_phy_font_load().
 958
 9592009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 960
 961	smooth: Improve the format in debug message.
 962
 963	* src/smooth/ftgrays.c (gray_dump_cells): Improve the
 964	format specifications to dump variables.
 965
 9662009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 967
 968	sfnt: Fix a data type mismatching with its source.
 969
 970	* src/sfnt/sfobjs.c (sfnt_load_face): The type of
 971	local `flags' is matched with FT_Face->face_flags.
 972
 9732009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 974
 975	psaux: Fix a data type mismatching with its source.
 976
 977	* include/freetype/internal/psaux.h: The type of
 978	T1_DecorderRec.buildchar is matched with
 979	T1_DecorderRec.top.
 980
 9812009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 982
 983	truetype: Extend TrueType GX packed deltas to FT_Offset.
 984
 985	* src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
 986	The type of 2nd argument `delta_cnt' is changed from
 987	FT_Int to FT_Offset, because its source can be cvt
 988	table size calculated from stream position.
 989
 9902009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 991
 992	truetype: Extend mmvar_len to hold size_t values.
 993
 994	* src/truetype/ttgxvar.h: The type of
 995	GX_BlendRec.mmvar_len is changed from FT_Int to
 996	FT_Offset, because TT_Get_MM_Var() calculates it
 997	by sizeof() results.
 998
 9992009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1000
1001	truetype: Check invalid function number in IDEF instruction.
1002
1003	* src/truetype/ttinterp.c (Ins_IDEF): Check
1004	if the operand fits to 8-bit opcode limitation.
1005
10062009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1007
1008	truetype: Check invalid function number in FDEF instruction.
1009
1010	* src/truetype/ttinterp.c (Ins_FDEF): Check
1011	if the operand fits 16-bit function number.
1012
10132009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1014
1015	truetype: Truncate the deltas of composite glyph at 16-bit values.
1016
1017	* src/truetype/ttgload.c (load_truetype_glyph):
1018	Insert cast from FT_Long (deltas[i].{x,y}) to
1019	FT_Int16 in the summation of deltas[] for composite
1020	glyphs.  Because deltas[i] is typed as FT_Pos,
1021	its component x, y are typed as FT_Long, but
1022	their sources are always FT_Int16 when they are
1023	loaded by ft_var_readpackeddeltas().  However,
1024	the limitation about the summed deltas is unclear.
1025
10262009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1027
1028	truetype: Truncate the instructions upto 16-bit per a glyph.
1029
1030	* src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
1031	the instructions upto 16-bit length per a glyph.
1032
10332009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1034
1035	truetype: Cast the numerical operands to 32-bit for LP64 systems.
1036
1037	* src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP,
1038	Ins_MIRP): Insert cast from long (args[], the
1039	operands passed to TrueType operator) to FT_Int32
1040	(the argument of TT_MulFix14()).
1041
10422009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1043
1044	truetype: Cast the project vector to 32-bit for LP64 system.
1045
1046	* src/truetype/ttinterp.c (Project, DualProject):
1047	Insert casts from FT_Pos (the arguments `dx', `dy')
1048	to FT_UInt32 (the argument to TT_DotFix14()).
1049
10502009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1051
1052	truetype: Cast the scaling params to 32-bit for LP64 system.
1053
1054	* src/truetype/ttgload.c (TT_Process_Composite_Component):
1055	Insert casts from long (return value of FT_MulFix()) to
1056	FT_Int32 (the argument to FT_SqrtFixed()).
1057
10582009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1059
1060	sfnt: Cast a character code to FT_UInt32 for LP64 system.
1061
1062	* src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
1063	tt_cmap14_variants, tt_cmap14_char_variants,
1064	tt_cmap14_def_char_count, tt_cmap14_get_def_chars,
1065	tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars)
1066	Insert casts when FT_UInt32 variable is loaded by
1067	TT_NEXT_{UINT24|ULONG}.  Because most of them are
1068	compared with FT_UInt32 values in public API, replacing
1069	FT_UFast is not recommended.
1070
10712009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1072
1073	sfnt: Cast a character code to FT_UInt32 for LP64 system.
1074
1075	* src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
1076	Insert the casts from unsigned long constant to
1077	FT_UInt32.
1078
10792009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1080
1081	sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
1082
1083	* include/freetype/internal/tttypes.h: The type
1084	of TT_BDF->string_size is extended from FT_UInt32
1085	to FT_ULong, because BDF specification does not
1086	restrict the length of string.
1087	* src/sfnt/ttbdf.c: The scratch variable `strings'
1088	to load TT_BDF->string_size is matched with
1089	TT_BDF->string_size.
1090
10912009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1092
1093	psaux: Handle the string length by FT_Offset variables.
1094
1095	* src/psaux/afmparse.c (afm_parser_next_key,
1096	afm_tokenize, afm_parse_track_kern,
1097	afm_parse_kern_pairs, afm_parse_kern_data,
1098	afm_parser_skip_section, afm_parser_parse):
1099	The length of key is handled by FT_Offset,
1100	instead of FT_UInt.  Although the length of
1101	PostScript strings or name object is 16-bit,
1102	AFM_STREAM_KEY_LEN() calculates the length
1103	from the pointer difference.
1104
1105	* src/psaux/afmparse.h (afm_parser_next_key):
1106	Ditto.
1107
11082009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1109
1110	pcf: Fix some data types mismatching with their sources.
1111
1112	* src/pcf/pcfread.c (pcf_get_bitmaps): The types
1113	of `nbitmaps', `i', `sizebitmaps' are matched with
1114	the type of area FT_Bitmap.pitch * FT_Bitmap.rows.
1115
11162009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1117
1118	pcf: Handle the string length by size_t variables.
1119
1120	* src/pcf/pcfread.c (pcf_interpret_style): The types
1121	of nn, len, lengths[4] are changed to size_t, because
1122	they are loaded by (or compared with) ft_strlen().
1123
1124	* src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap,
1125	FourByteSwap): The type of the 2nd argument `nbytes'
1126	is changed to size_t, for similarity with ANSI C
1127	string functions.
1128
1129	* src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of
1130	`bytes' is changed to FT_Offset, because it is passed
1131	to FT_ALLOC(), via ft_glyphslot_alloc_bitmap().  At
1132	least, using unsigned type is better.
1133
11342009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1135
1136	pcf: Fix some data types mismatching with their sources.
1137
1138	* src/pcf/pcfread.c (pcf_seek_to_table_type,
1139	pcf_has_table_type): The type of 3rd argument
1140	`ntables' is matched with PCF_Toc->count.
1141
11422009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1143
1144	otvalid: Truncate the glyph index to 16-bit.
1145
1146	* src/otvalid/otvalid.c (otv_validate): Checks
1147	face->num_glyphs does not exceed 16-bit limit,
1148	pass FT_UInt num_glyphs to backend functions
1149	otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate().
1150
11512009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1152
1153	cache: Insert explict casts for LP64 systems.
1154
1155	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
1156	FTC_SBitCache_Lookup): The type of FTC_ImageType->width
1157	is FT_Int, so the cast to unsigned larger type FT_ULong
1158	is introduced for the comparisons with 0x10000L for
1159	LP64 platform.
1160
11612009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1162
1163	cache: Fix some data types mismatching with their sources.
1164
1165	* src/cache/ftccache.h: The type of return value
1166	by FTC_Node_WeightFunc function is changed to
1167	FT_Offset.  The type of FTC_CacheClass->cache_size
1168	is changed to FT_Offset, too.
1169
1170	* src/cache/ftccback.h (ft_inode_weight,
1171	ftc_snode_weight): Ditto.
1172
1173	* src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
1174
1175	* src/cache/ftcimage.c (ftc_inode_weight,
1176	FTC_INode_Weight): Ditto.
1177
1178	* src/cache/ftcsbits.c (ftc_snode_weight,
1179	FTC_SNode_Weight): Ditto.
1180
1181	* src/cache/ftcmru.h: The type of
1182	FTC_MruListClass->node_size is changed to FT_Offset,
1183	because it is passed to FT_ALLOC() to specify the
1184	size of buffer.
1185
11862009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1187
1188	XXX_cmap_encoding_char_next() return FT_UInt32 values.
1189
1190	* include/freetype/internal/services/svpscmap.h:
1191	The size of the charcode value returned by
1192	the function typed PS_Unicodes_CharNextFunc is
1193	matched with its input charcode value.
1194
1195	* src/cff/cffmap.c (cff_cmap_encoding_char_next,
1196	cff_cmap_unicode_char_next): Ditto.
1197
1198	* src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
1199	Ditto.
1200
1201	* src/psaux/t1cmap.c (t1_cmap_std_char_next,
1202	t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
1203	Ditto.
1204
1205	* src/psnames/psmodule.c (ps_unicodes_char_next):
1206	Ditto.
1207
1208	* src/winfonts/winfnt.c (fnt_cmap_char_next):
1209	Ditto.
1210
1211	* src/sfnt/ttcmap.c (tt_cmap0_char_next,
1212	tt_cmap2_char_next, tt_cmap4_char_next,
1213	tt_cmap6_char_next, tt_cmap10_char_next,
1214	tt_cmap12_char_next, tt_cmap13_char_next): Ditto.
1215	(tt_cmap14_char_variants): Handle base unicode
1216	codepoint by FT_UInt32 variable to avoid overflow
1217	on 16-bit platforms.
1218	(tt_cmap14_ensure): The type of `num_results' is
1219	extend to FT_UInt32, to cover unsigned 32-bit
1220	`numVarSelectorRecords' in cmap14 table header.
1221
12222009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1223
1224	truetype: Extend TT_Face->num_locations for broken TTFs.
1225
1226	* include/freetype/internal/tttypes.h:
1227	TT_Face->num_locations are extended from FT_UInt
1228	to FT_ULong, to stand with broken huge loca table.
1229	Some people insists there are broken TTF including
1230	the glyphs over 16-bit limitation, in PRC market.
1231	* src/truetype/ttpload.c (tt_face_load_loca):
1232	Remove unrequired 16-bit truncation for FT_UInt
1233	TT_Face->num_locations.
1234
12352009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1236
1237	smooth: Fix some data types mismatching with their sources.
1238
1239	* src/smooth/ftgrays.c: The type of `TCoord' is
1240	matched to `TPos', because they are mixed in
1241	gray_set_cell().  The type of TCell->x is extended
1242	to `TPos', because gray_find_cell() sets it by
1243	TWorker.ex.  The type of TCell->cover is extended
1244	to `TCoord', because gray_render_scanline() adds
1245	TCoord value to it.  The type of TWork.cover is matched
1246	with TCell->cover.  The types of
1247	TWork.{max_cells,num_cells} are changed to FT_PtrDist,
1248	because they are calculated from the memory addresses.
1249	The type of TWork.ycount is changed to TPos, because
1250	it is calculated from TPos variables.
1251	(gray_find_cell): The type of `x' is matched with
1252	its initial value ras.ex.
1253	(gray_render_scanline): The types of `mod', `lift'
1254	and `rem' are changed to TCoord, because their values
1255	are set with explicit casts to TCoord.  When ras.area
1256	is updated by the differential values including
1257	`delta', they are explicitly cast to TArea, because
1258	the type of `delta' is not TArea but TCoord.
1259	(gray_render_line): The type of `mod' is extended
1260	from int to TCoord, because (TCoord)dy is added to mod.
1261	(gray_hline): The argument `acount' is extended to
1262	TCoord, to match with the parameters in the callers.
1263
12642009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1265
1266	cff: Fix some data types mismatching with their sources.
1267
1268	* src/cff/cffobjs.c (cff_face_init): The type of
1269	`scaling' is matched with the scaling parameter
1270	in FT_Matrix_Multiply_Scaled() and
1271	FT_Vector_Transform_Scaled().
1272
1273	* src/cff/cffparse.c (cff_parse_real): The type of
1274	`power_ten', `scaling', `exponent_add',
1275	`integer_length', `fraction_length',
1276	`new_fraction_length' and `shift' are matched with
1277	the type of `exponent' to avoid unexpected truncation.
1278	(cff_parse_fixed_scaled): The type of `scaling' is
1279	matched with the `scaling' argument to
1280	cff_parse_real().
1281	(cff_parse_fixed_dynamic): Ditto.
1282	(cff_parse_font_matrix): The type of `scaling' is
1283	matched with the `scaling' argument to
1284	cff_parse_dynamic().
1285
12862009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1287
1288	autofit: Fix some data types mismatching with their sources.
1289
1290	* src/autofit/afglobal.c: Correct the type of
1291	AF_FaceGlobalsRec.glyph_count to match with
1292	FT_Face->num_glyphs.
1293	(af_face_globals_compute_script_coverage):
1294	Insert explicit cast to compare
1295	FT_Long AF_FaceGlobalsRec.glyph_count versus
1296	FT_UInt gindex.  The type of `nn' is changed
1297	to scan glyph index upto AF_FaceGlobalsRec.glyph_count.
1298	(af_face_globals_get_metrics): The type of `script_max'
1299	is changed to cover size_t value.  Insert explicit cast
1300	to compare FT_Long AF_FaceGlobalsRec.glyph_count versus
1301	FT_UInt gindex.
1302
1303	* src/autofit/afhints.c (af_axis_hints_new_segment):
1304	Insert explicit cast to calculate `big_max' from
1305	integer and size_t values.
1306	(af_axis_hints_new_edge): Ditto.
1307
1308	* src/autofit/aflatin.c (af_latin_metrics_init_blues):
1309	The type of `best_y' is matched to FT_Vector.y.
1310	(af_latin_compute_stem_width): The type of `delta' is
1311	matched to `dist' and `org_dist'.
1312
13132009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1314
1315	autofit: Count the size of the memory object by ptrdiff_t.
1316
1317	* src/autofit/afcjk.c (af_cjk_hint_edges): The
1318	number of edges `n_edges' should be counted by
1319	FT_PtrDist variable instead of FT_Int.
1320
1321	* src/autofit/aflatin.c (af_latin_hint_edges):
1322	Ditto.
1323
1324	* src/autofit/aftypes.h: In AF_ScriptClassRec,
1325	the size of metric `script_metrics_size' should
1326	be counted by FT_Offset variable instead of FT_UInt.
1327
1328	* src/autofit/afhints.c
1329	(af_glyph_hints_align_strong_points): The cursors
1330	for the edges `min', `max', `mid' in the memory
1331	buffer should be typed FT_PtrDist.
1332
13332009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1334
1335	autofit: Fix for unused variable `first'.
1336
1337	* src/autofit/afhints.c (af_glyph_hints_reload): Insert
1338	FT_UNUSED() to hide the unused variable warning.
1339
13402009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1341
1342	Improve bitmap size or pixel variables for 16-bit systems.
1343
1344	* include/freetype/config/ftstdlib.h: Introduce
1345	FT_INT_MIN, to use in signed integer overflow in
1346	16-bit and 64-bit platforms.
1347	
1348	* include/freetype/internal/fttrace.h: Add a tracer
1349	to ftsynth.c.
1350	
1351	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
1352	invalid strength causing integer overflow on 16-bit
1353	platform.
1354	
1355	* src/base/ftcalc.c (ft_corner_orientation): Change
1356	the internal calculation from FT_Int to FT_Long, to
1357	avoid an overflow on 16-bit platforms.  The caller of
1358	this function should use only the sign of result,
1359	so the cast to FT_Int is acceptable.
1360	
1361	* src/base/ftsynth.c: Introduce a tracer for synth module.
1362	(FT_GlyphSlot_Embolden): Check invalid strength causing
1363	integer overflow on 16-bit platform.
1364	
1365	* src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index
1366	in FT2 API is typed as FT_UInt, although BDF driver
1367	can handle unsigned long glyph index internally.  To
1368	avoid integer overflow on 16-bit platform, too large
1369	glyph index should be excluded.
1370	(BDF_Glyph_Load): The glyph pitch in FT2 is typed as
1371	FT_UInt, although BDF driver can handle unsigned long
1372	glyph pitch internally.  To avoid integer overflow on
1373	16-bit platform, too large glyph pitch should not be
1374	returned.
1375	
1376	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph
1377	pitch in FT2 is typed as FT_UInt, although PFR font
1378	format can include huge bitmap glyph with 24-bit pitch
1379	(however, a glyph spends 16.7 pixel, it's not realistic).
1380	To avoid integer overflow on 16-bit platform, huge
1381	bitmap glyph should be excluded.
1382	
1383	* src/smooth/ftgrays.c (gray_hline): As FT_Span.x is
1384	truncated to fit its type (16-bit short), FT_Span.y
1385	should be truncated to fit its type (FT_Int).
1386	
1387	* src/cff/cffdrivr.c (cff_get_ros): CFF specification
1388	defines the supplement in ROS as a real number.
1389	Truncate it to fit public FT2 API.
1390	
1391	* src/cff/cffparse.c (cff_parse_cid_ros): Warn the
1392	supplement if it is truncated or rounded in cff_get_ros().
1393	
1394	* src/cff/cfftypes.h: Change the type of internal variable
1395	`supplement' from FT_Long to FT_ULong to fit the signedness
1396	to the type in public API.
1397
13982009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1399
1400	psaux: Prevent invalid arguments to afm_parser_read_vals().
1401
1402	* src/psaux/afmparse.c (afm_parser_read_vals): Change
1403	the type of `n' to prevent negative number how many
1404	arguments should be parsed.
1405
1406	* src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
1407
14082009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1409
1410	base: Prevent some overflows on LP64 systems.
1411
1412	* src/base/ftadvance.c (FT_Get_Advances): Cast the
1413	unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
1414	for LP64 platforms.
1415
1416	* src/base/ftcalc.c (FT_Sqrt32): All internal variables
1417	are changed to FT_UInt32 from FT_ULong.
1418	(FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms.
1419	This function is designed for 32-bit integer, although
1420	their arguments and return value are FT_Long.
1421
1422	* src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode'
1423	is within unsigned 32-bit integer for LP64 platforms.
1424	(FT_Face_GetCharVariantIndex): Check `charcode' and
1425	`variantSelector' are within 32-bit integer for LP64
1426	platforms.
1427	(FT_Face_GetCharsOfVariant): Check `variantSelector' is
1428	within unsigned 32-bit integer for LP64 platforms.
1429
1430	* src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed
1431	variable `val' and unsigned long constant FT_TRIG_SCALE
1432	are cast to FT_UInt32, when calculates FT_UInt32.
1433	(FT_Vector_Rotate): The long constant 1L is cast to
1434	FT_Int32 to calculate FT_Int32 `half'.
1435
14362009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1437
1438	cff: Cast the long variables to 32-bit for LP64 systems.
1439
1440	* src/cff/cffdrivr.c (cff_get_advances): Insert
1441	explicit cast to modify a 32-bit flag by unsigned
1442	long constant.
1443
1444	* src/cff/cffobjs.c (cff_face_init): Ditto.
1445
1446	* src/cff/cffgload.c (cff_decoder_parse_charstrings):
1447	Replace the casts to FT_Long by the casts to FT_Int32
1448	for LP64 platforms.
1449
14502009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1451
1452	pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
1453
1454	* src/pcf/pcf.h: In PCF_PropertyRec.value, the member
1455	`integer' is replaced by `l', `cardinal' is replaced
1456	by `ul', to fix the difference between the name and
1457	the types on LP64 platforms.
1458
1459	* src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect
1460	PCF_PropertyRec.value change, with appropriate casts
1461	to FT_Int32/FT_UInt32.  Their destinations
1462	BDF_PropertyRec.{integer|cardinal} are public and
1463	explicitly defined as FT_Int32/FT_UInt32.
1464
1465	* src/pcf/pcfread.c (pcf_get_properti…

Large files files are truncated, but you can click here to view the full file