using namespace OT;
/* an opstr and the parsed out dict value(s) */
-template <typename ARG=Number>
struct DictVal : OpStr
{
inline void init (void)
multi_val.fini ();
}
- ARG single_val;
- hb_vector_t<ARG> multi_val;
+ Number single_val;
+ hb_vector_t<Number> multi_val;
};
-typedef DictVal<> NumDictVal;
+typedef DictVal NumDictVal;
template <typename VAL>
struct DictValues
unsigned int FDArrayOffset;
};
-template <typename ARG=Number>
-struct DictOpSet : OpSet<ARG>
+struct DictOpSet : OpSet<Number>
{
- static inline bool process_op (OpCode op, InterpEnv<ARG>& env)
+ static inline bool process_op (OpCode op, InterpEnv<Number>& env)
{
switch (op) {
case OpCode_longintdict: /* 5-byte integer */
return true;
default:
- return OpSet<ARG>::process_op (op, env);
+ return OpSet<Number>::process_op (op, env);
}
return true;
}
};
-template <typename ARG=Number>
-struct TopDictOpSet : DictOpSet<ARG>
+struct TopDictOpSet : DictOpSet
{
- static inline bool process_op (OpCode op, InterpEnv<ARG>& env, TopDictValues& dictval)
+ static inline bool process_op (OpCode op, InterpEnv<Number>& env, TopDictValues& dictval)
{
switch (op) {
case OpCode_CharStrings:
env.clear_args ();
break;
default:
- return DictOpSet<ARG>::process_op (op, env);
+ return DictOpSet::process_op (op, env);
}
return true;
};
typedef InterpEnv<BlendArg> BlendInterpEnv;
-typedef DictVal<BlendArg> BlendDictVal;
struct CFF2CSInterpEnv : CSInterpEnv<BlendArg, CFF2Subrs>
{
TableInfo privateDictInfo;
};
-struct CFF1TopDictOpSet : TopDictOpSet<>
+struct CFF1TopDictOpSet : TopDictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF1TopDictValues& dictval)
{
TableInfo privateDictInfo;
};
-struct CFF1FontDictOpSet : DictOpSet<>
+struct CFF1FontDictOpSet : DictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF1FontDictValues& dictval)
{
typedef CFF1PrivateDictValues_Base<OpStr> CFF1PrivateDictValues_Subset;
typedef CFF1PrivateDictValues_Base<NumDictVal> CFF1PrivateDictValues;
-struct CFF1PrivateDictOpSet : DictOpSet<>
+struct CFF1PrivateDictOpSet : DictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF1PrivateDictValues& dictval)
{
}
};
-struct CFF1PrivateDictOpSet_Subset : DictOpSet<>
+struct CFF1PrivateDictOpSet_Subset : DictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF1PrivateDictValues_Subset& dictval)
{
unsigned int FDSelectOffset;
};
-struct CFF2TopDictOpSet : TopDictOpSet<>
+struct CFF2TopDictOpSet : TopDictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF2TopDictValues& dictval)
{
switch (op) {
case OpCode_FontMatrix:
{
- DictVal<> val;
+ DictVal val;
val.init ();
dictval.pushVal (op, env.substr);
env.clear_args ();
return true;
}
- typedef TopDictOpSet<> SUPER;
+ typedef TopDictOpSet SUPER;
};
struct CFF2FontDictValues : DictValues<OpStr>
TableInfo privateDictInfo;
};
-struct CFF2FontDictOpSet : DictOpSet<>
+struct CFF2FontDictOpSet : DictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF2FontDictValues& dictval)
{
}
private:
- typedef DictOpSet<> SUPER;
+ typedef DictOpSet SUPER;
};
template <typename VAL>
typedef CFF2PrivateDictValues_Base<OpStr> CFF2PrivateDictValues_Subset;
typedef CFF2PrivateDictValues_Base<NumDictVal> CFF2PrivateDictValues;
-struct CFF2PrivateDictOpSet : DictOpSet<>
+struct CFF2PrivateDictOpSet : DictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF2PrivateDictValues& dictval)
{
}
};
-struct CFF2PrivateDictOpSet_Subset : DictOpSet<Number>
+struct CFF2PrivateDictOpSet_Subset : DictOpSet
{
static inline bool process_op (OpCode op, NumInterpEnv& env, CFF2PrivateDictValues_Subset& dictval)
{
}
private:
- typedef DictOpSet<Number> SUPER;
+ typedef DictOpSet SUPER;
};
typedef DictInterpreter<CFF2TopDictOpSet, CFF2TopDictValues> CFF2TopDict_Interpreter;
{
TRACE_SERIALIZE (this);
- if (drop_hints && DictOpSet<>::is_hint_op (opstr.op))
+ if (drop_hints && DictOpSet::is_hint_op (opstr.op))
return true;
if (opstr.op == OpCode_Subrs)
{
inline unsigned int calculate_serialized_size (const OpStr &opstr) const
{
- if (drop_hints && DictOpSet<>::is_hint_op (opstr.op))
+ if (drop_hints && DictOpSet::is_hint_op (opstr.op))
return 0;
if (opstr.op == OpCode_Subrs)
{