forked from minhngoc25a/freetype2
9079521002
This code originally just searched for `eexec`. This was later modified to check that the `eexec` found is valid (not in a string or comment). This was done by searching for `eexec` as before and then, for each `eexec` found, searching from the beginning using the correct parsing to see if the `eexec` was still found. If the private dictionary is large and contains many copies of `eexec` which are not valid, the initial part of the private dictionary is scanned once for each, potentially leading to n^2 parsing time. Instead of finding an initial `eexec` and then re-parsing to discover if it is valid, drop the initial search for `eexec` and just parse to find a valid `eexec`. This is strictly faster since the validation must happen anyway and avoids restarting from the beginning each time an `eexec` is found in the data. * src/type1/t1parse.c (T1_Get_Private_Dict): avoid n^2 parsing Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1328883 |
||
---|---|---|
.. | ||
module.mk | ||
rules.mk | ||
t1afm.c | ||
t1afm.h | ||
t1driver.c | ||
t1driver.h | ||
t1errors.h | ||
t1gload.c | ||
t1gload.h | ||
t1load.c | ||
t1load.h | ||
t1objs.c | ||
t1objs.h | ||
t1parse.c | ||
t1parse.h | ||
t1tokens.h | ||
type1.c |