#ifdefined(__MINGW32__) // MinGW's <limits> at some point includes winnt.h which #define's a // DELETE macro, which conflicts with enum opcode below, so we undefine // it here. #undefDELETE #endif
namespace graphite2 {
// Forward declarations class Segment; class Slot; class SlotMap;
POP_RET, RET_ZERO, RET_TRUE,
IATTR_SET, IATTR_ADD, IATTR_SUB,
PUSH_PROC_STATE, PUSH_VERSION,
PUT_SUBS, PUT_SUBS2, PUT_SUBS3,
PUT_GLYPH, PUSH_GLYPH_ATTR, PUSH_ATT_TO_GLYPH_ATTR, BITOR, BITAND, BITNOT,
BITSET, SET_FEAT,
MAX_OPCODE, // private opcodes for internal use only, comes after all other on disk opcodes
TEMP_COPY = MAX_OPCODE
};
inline Machine::Machine(SlotMap & map) throw()
: _map(map), _status(finished)
{ // Initialise stack guard +1 entries as the stack pointer points to the // current top of stack, hence the first push will never write entry 0. // Initialising the guard space like this is unnecessary and is only // done to keep valgrind happy during fuzz testing. Hopefully loop // unrolling will flatten this. for (size_t n = STACK_GUARD + 1; n; --n) _stack[n-1] = 0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.