Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: third_party/harfbuzz-ng/src/hb-open-type-private.hh

Issue 12438036: Update harfbuzz-ng to 0.9.14 from 0.9.10 (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/harfbuzz-ng/src/hb-open-type-private.hh
===================================================================
--- third_party/harfbuzz-ng/src/hb-open-type-private.hh (리비전 191245)
+++ third_party/harfbuzz-ng/src/hb-open-type-private.hh (작업 사본)
@@ -171,6 +171,10 @@
(&c->debug_depth, c->get_name (), this, HB_FUNC, \
"");
+/* This limits sanitizing time on really broken fonts. */
+#ifndef HB_SANITIZE_MAX_EDITS
+#define HB_SANITIZE_MAX_EDITS 100
+#endif
struct hb_sanitize_context_t
{
@@ -178,7 +182,7 @@
static const unsigned int max_debug_depth = HB_DEBUG_SANITIZE;
typedef bool return_t;
template <typename T>
- inline return_t process (const T &obj) { return obj.sanitize (this); }
+ inline return_t dispatch (const T &obj) { return obj.sanitize (this); }
static return_t default_return_value (void) { return true; }
bool stop_sublookup_iteration (const return_t r HB_UNUSED) const { return false; }
@@ -247,6 +251,9 @@
inline bool may_edit (const void *base HB_UNUSED, unsigned int len HB_UNUSED)
{
+ if (this->edit_count >= HB_SANITIZE_MAX_EDITS)
+ return false;
+
const char *p = (const char *) base;
this->edit_count++;
@@ -404,7 +411,7 @@
template <typename Type>
inline Type *allocate_size (unsigned int size)
{
- if (unlikely (this->ran_out_of_room || this->end - this->head < size)) {
+ if (unlikely (this->ran_out_of_room || this->end - this->head < ptrdiff_t (size))) {
this->ran_out_of_room = true;
return NULL;
}
@@ -616,10 +623,20 @@
DEFINE_NULL_DATA (Index, "\xff\xff");
/* Offset to a table, same as uint16 (length = 16 bits), Null offset = 0x0000 */
-typedef USHORT Offset;
+struct Offset : USHORT
+{
+ inline bool is_null (void) const { return 0 == *this; }
+ public:
+ DEFINE_SIZE_STATIC (2);
+};
/* LongOffset to a table, same as uint32 (length = 32 bits), Null offset = 0x00000000 */
-typedef ULONG LongOffset;
+struct LongOffset : ULONG
+{
+ inline bool is_null (void) const { return 0 == *this; }
+ public:
+ DEFINE_SIZE_STATIC (4);
+};
/* CheckSum */
@@ -674,11 +691,6 @@
if (unlikely (!offset)) return Null(Type);
return StructAtOffset<Type> (base, offset);
}
- inline Type& operator () (void *base)
- {
- unsigned int offset = *this;
- return StructAtOffset<Type> (base, offset);
- }
inline Type& serialize (hb_serialize_context_t *c, void *base)
{
속성 변경: third_party/harfbuzz-ng/src/hb-open-type-private.hh
___________________________________________________________________
추가: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698