summaryrefslogtreecommitdiff
path: root/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-03-01 09:31:47 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-03-01 09:31:47 +0000
commit9573faff4817c93371192dd559ab379b6a834506 (patch)
tree8574b47925025fdc409422ed44e070eb146cdbdb /Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp
parentae8ee5cdb1282ebca15eebebacd1bfad1fe63136 (diff)
graphite2 1.3.6
git-svn-id: svn://tug.org/texlive/trunk@39898 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp')
-rw-r--r--Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp b/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp
index b6b9ee04235..7d80438fb42 100644
--- a/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp
+++ b/Build/source/libs/graphite2/graphite2-src/src/direct_machine.cpp
@@ -62,6 +62,7 @@ const void * direct_run(const bool get_table_mode,
Machine::stack_t * stack,
slotref * & __map,
uint8 _dir,
+ Machine::status_t & status,
SlotMap * __smap=0)
{
// We need to define and return to opcode table from within this function
@@ -71,17 +72,17 @@ const void * direct_run(const bool get_table_mode,
return opcode_table;
// Declare virtual machine registers
- const instr * ip = program;
- const byte * dp = data;
- Machine::stack_t * sp = stack + Machine::STACK_GUARD,
- * const sb = sp;
- SlotMap & smap = *__smap;
- Segment & seg = smap.segment;
- slotref is = *__map,
- * map = __map,
- * const mapb = smap.begin()+smap.context();
- uint8 dir = _dir;
- int8 flags = 0;
+ const instr * ip = program;
+ const byte * dp = data;
+ Machine::stack_t * sp = stack + Machine::STACK_GUARD,
+ * const sb = sp;
+ SlotMap & smap = *__smap;
+ Segment & seg = smap.segment;
+ slotref is = *__map,
+ * map = __map,
+ * const mapb = smap.begin()+smap.context();
+ uint8 dir = _dir;
+ int8 flags = 0;
// start the program
goto **ip;
@@ -100,7 +101,8 @@ const void * direct_run(const bool get_table_mode,
const opcode_t * Machine::getOpcodeTable() throw()
{
slotref * dummy;
- return static_cast<const opcode_t *>(direct_run(true, 0, 0, 0, dummy, 0));
+ Machine::status_t dumstat = Machine::finished;
+ return static_cast<const opcode_t *>(direct_run(true, 0, 0, 0, dummy, 0, dumstat));
}
@@ -111,7 +113,7 @@ Machine::stack_t Machine::run(const instr * program,
assert(program != 0);
const stack_t *sp = static_cast<const stack_t *>(
- direct_run(false, program, data, _stack, is, _map.dir(), &_map));
+ direct_run(false, program, data, _stack, is, _map.dir(), _status, &_map));
const stack_t ret = sp == _stack+STACK_GUARD+1 ? *sp-- : 0;
check_final_stack(sp);
return ret;