LETypes.h   LETypes.h 
skipping to change at line 267 skipping to change at line 267
#ifndef __cplusplus #ifndef __cplusplus
/** /**
* Used to hold a pair of (x, y) values which represent a point. * Used to hold a pair of (x, y) values which represent a point.
* *
* @stable ICU 2.4 * @stable ICU 2.4
*/ */
typedef struct LEPoint LEPoint; typedef struct LEPoint LEPoint;
#endif #endif
#ifndef U_HIDE_INTERNAL_API #ifndef U_HIDE_INTERNAL_API
#ifndef LE_ASSERT_BAD_FONT
#define LE_ASSERT_BAD_FONT 0
#endif
#if LE_ASSERT_BAD_FONT
#include <stdio.h>
#define LE_DEBUG_BAD_FONT(x) fprintf(stderr,"%s:%d: BAD FONT: %s\n", __FILE
__, __LINE__, (x));
#else
#define LE_DEBUG_BAD_FONT(x)
#endif
/**
* Max value representable by a uintptr
*/
#ifndef UINT32_MAX
#define LE_UINT32_MAX 0xFFFFFFFFU
#else
#define LE_UINT32_MAX UINT32_MAX
#endif
#ifndef UINTPTR_MAX
#define LE_UINTPTR_MAX LE_UINT32_MAX
#else
#define LE_UINTPTR_MAX UINTPTR_MAX
#endif
/**
* Range check for overflow
*/
#define LE_RANGE_CHECK(type, count, ptrfn) (( (LE_UINTPTR_MAX / sizeof(type
)) < count ) ? NULL : (ptrfn))
/** /**
* A convenience macro to get the length of an array. * A convenience macro to get the length of an array.
* *
* @internal * @internal
*/ */
#define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0]) #define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
#ifdef LE_USE_CMEMORY #ifdef LE_USE_CMEMORY
/** /**
* A convenience macro for copying an array. * A convenience macro for copying an array.
skipping to change at line 288 skipping to change at line 320
* @internal * @internal
*/ */
#define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0]) #define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
/** /**
* Allocate an array of basic types. This is used to isolate the rest of * Allocate an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h. * the LayoutEngine code from cmemory.h.
* *
* @internal * @internal
*/ */
#define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(typ e)) #define LE_NEW_ARRAY(type, count) (type *) LE_RANGE_CHECK(type,count,uprv_ malloc((count) * sizeof(type)))
/** /**
* Re-allocate an array of basic types. This is used to isolate the rest of * Re-allocate an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h. * the LayoutEngine code from cmemory.h.
* *
* @internal * @internal
*/ */
#define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSi ze) * sizeof (array)[0]) #define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSi ze) * sizeof (array)[0])
/** /**
skipping to change at line 332 skipping to change at line 364
* @internal * @internal
*/ */
#define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src ), (count) * sizeof (src)[0]) #define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src ), (count) * sizeof (src)[0])
/** /**
* Allocate an array of basic types. This is used to isolate the rest of * Allocate an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h. * the LayoutEngine code from cmemory.h.
* *
* @internal * @internal
*/ */
#define LE_NEW_ARRAY(type, count) (type *) malloc((count) * sizeof(type)) #define LE_NEW_ARRAY(type, count) LE_RANGE_CHECK(type,count,(type *) malloc ((count) * sizeof(type)))
/** /**
* Re-allocate an array of basic types. This is used to isolate the rest of * Re-allocate an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h. * the LayoutEngine code from cmemory.h.
* *
* @internal * @internal
*/ */
#define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0]) #define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
/** /**
skipping to change at line 631 skipping to change at line 663
#define LE_SS04_FEATURE_FLAG (1 << LE_SS04_FEATURE_ENUM) #define LE_SS04_FEATURE_FLAG (1 << LE_SS04_FEATURE_ENUM)
#define LE_SS05_FEATURE_FLAG (1 << LE_SS05_FEATURE_ENUM) #define LE_SS05_FEATURE_FLAG (1 << LE_SS05_FEATURE_ENUM)
#define LE_SS06_FEATURE_FLAG (1 << LE_SS06_FEATURE_ENUM) #define LE_SS06_FEATURE_FLAG (1 << LE_SS06_FEATURE_ENUM)
#define LE_SS07_FEATURE_FLAG (1 << LE_SS07_FEATURE_ENUM) #define LE_SS07_FEATURE_FLAG (1 << LE_SS07_FEATURE_ENUM)
#define LE_CHAR_FILTER_FEATURE_FLAG (1 << LE_CHAR_FILTER_FEATURE_ENUM) #define LE_CHAR_FILTER_FEATURE_FLAG (1 << LE_CHAR_FILTER_FEATURE_ENUM)
/** /**
* @} * @}
*/ */
#define LE_DEFAULT_FEATURE_FLAG (LE_Kerning_FEATURE_FLAG | LE_Ligatures_FEA
TURE_FLAG) /**< default features */
/** /**
* Error codes returned by the LayoutEngine. * Error codes returned by the LayoutEngine.
* *
* @stable ICU 2.4 * @stable ICU 2.4
*/ */
enum LEErrorCode { enum LEErrorCode {
/* informational */ /* informational */
LE_NO_SUBFONT_WARNING = U_USING_DEFAULT_WARNING, /**< The font does not contain subfonts. */ LE_NO_SUBFONT_WARNING = U_USING_DEFAULT_WARNING, /**< The font does not contain subfonts. */
/* success */ /* success */
 End of changes. 4 change blocks. 
2 lines changed or deleted 39 lines changed or added


 LayoutEngine.h   LayoutEngine.h 
skipping to change at line 255 skipping to change at line 255
*/ */
virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 off set, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEError Code &success); virtual void adjustGlyphPositions(const LEUnicode chars[], le_int32 off set, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEError Code &success);
/** /**
* This method gets a table from the font associated with * This method gets a table from the font associated with
* the text. The default implementation gets the table from * the text. The default implementation gets the table from
* the font instance. Subclasses which need to get the tables * the font instance. Subclasses which need to get the tables
* some other way must override this method. * some other way must override this method.
* *
* @param tableTag - the four byte table tag. * @param tableTag - the four byte table tag.
* @param length - length to use
* *
* @return the address of the table. * @return the address of the table.
* *
* @internal * @internal
*/ */
virtual const void *getFontTable(LETag tableTag) const; virtual const void *getFontTable(LETag tableTag, size_t &length) const;
/**
* @deprecated
*/
virtual const void *getFontTable(LETag tableTag) const { size_t ignored
; return getFontTable(tableTag, ignored); }
/** /**
* This method does character to glyph mapping. The default implementat ion * This method does character to glyph mapping. The default implementat ion
* uses the font instance to do the mapping. It will allocate the glyph and * uses the font instance to do the mapping. It will allocate the glyph and
* character index arrays if they're not already allocated. If it alloc ates the * character index arrays if they're not already allocated. If it alloc ates the
* character index array, it will fill it it. * character index array, it will fill it it.
* *
* This method supports right to left * This method supports right to left
* text with the ability to store the glyphs in reverse order, and by s upporting * text with the ability to store the glyphs in reverse order, and by s upporting
* character mirroring, which will replace a character which has a left and right * character mirroring, which will replace a character which has a left and right
 End of changes. 2 change blocks. 
1 lines changed or deleted 8 lines changed or added


 uvernum.h   uvernum.h 
skipping to change at line 66 skipping to change at line 66
/** The current ICU major version as an integer. /** The current ICU major version as an integer.
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
* @stable ICU 2.4 * @stable ICU 2.4
*/ */
#define U_ICU_VERSION_MAJOR_NUM 51 #define U_ICU_VERSION_MAJOR_NUM 51
/** The current ICU minor version as an integer. /** The current ICU minor version as an integer.
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
* @stable ICU 2.6 * @stable ICU 2.6
*/ */
#define U_ICU_VERSION_MINOR_NUM 1 #define U_ICU_VERSION_MINOR_NUM 2
/** The current ICU patchlevel version as an integer. /** The current ICU patchlevel version as an integer.
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
* @stable ICU 2.4 * @stable ICU 2.4
*/ */
#define U_ICU_VERSION_PATCHLEVEL_NUM 0 #define U_ICU_VERSION_PATCHLEVEL_NUM 0
/** The current ICU build level version as an integer. /** The current ICU build level version as an integer.
* This value is for use by ICU clients. It defaults to 0. * This value is for use by ICU clients. It defaults to 0.
* @stable ICU 4.0 * @stable ICU 4.0
skipping to change at line 121 skipping to change at line 121
#define U_DEF2_ICU_ENTRY_POINT_RENAME(x,y) U_DEF_ICU_ENTRY_POINT_RENAME(x,y ) #define U_DEF2_ICU_ENTRY_POINT_RENAME(x,y) U_DEF_ICU_ENTRY_POINT_RENAME(x,y )
#define U_ICU_ENTRY_POINT_RENAME(x) U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_IC U_VERSION_SUFFIX) #define U_ICU_ENTRY_POINT_RENAME(x) U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_IC U_VERSION_SUFFIX)
#endif #endif
#endif #endif
/** The current ICU library version as a dotted-decimal string. The patchle vel /** The current ICU library version as a dotted-decimal string. The patchle vel
* only appears in this string if it non-zero. * only appears in this string if it non-zero.
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
* @stable ICU 2.4 * @stable ICU 2.4
*/ */
#define U_ICU_VERSION "51.1" #define U_ICU_VERSION "51.2"
/** The current ICU library major/minor version as a string without dots, f or library name suffixes. /** The current ICU library major/minor version as a string without dots, f or library name suffixes.
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
* @stable ICU 2.6 * @stable ICU 2.6
*/ */
#define U_ICU_VERSION_SHORT "51" #define U_ICU_VERSION_SHORT "51"
#ifndef U_HIDE_INTERNAL_API #ifndef U_HIDE_INTERNAL_API
/** Data version in ICU4C. /** Data version in ICU4C.
* @internal ICU 4.4 Internal Use Only * @internal ICU 4.4 Internal Use Only
**/ **/
#define U_ICU_DATA_VERSION "51.1" #define U_ICU_DATA_VERSION "51.2"
#endif /* U_HIDE_INTERNAL_API */ #endif /* U_HIDE_INTERNAL_API */
/*========================================================================= == /*========================================================================= ==
* ICU collation framework version information * ICU collation framework version information
* Version info that can be obtained from a collator is affected by these * Version info that can be obtained from a collator is affected by these
* numbers in a secret and magic way. Please use collator version as whole * numbers in a secret and magic way. Please use collator version as whole
*========================================================================= == *========================================================================= ==
*/ */
/** /**
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/