aboutsummaryrefslogtreecommitdiff
path: root/src/core/vmrunner.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/vmrunner.hpp')
-rw-r--r--src/core/vmrunner.hpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/core/vmrunner.hpp b/src/core/vmrunner.hpp
index ee03385..d0e9af5 100644
--- a/src/core/vmrunner.hpp
+++ b/src/core/vmrunner.hpp
@@ -7,20 +7,19 @@
const Idata ione=Idata(0,1),izero=Idata(0,0);
const Idata rone=Idata(1,1),rzero=Idata(1,0);
template<class memb>
-class callStack//a queue, in fact.
+class callStack
{
private:
- int l,r;
+ int t;
memb data[16];
public:
callStack(){clear();}
- void clear(){l=0;r=-1;}
- int size(){return r-l+1;}
+ void clear(){t=-1;}
+ int size(){return t+1;}
bool empty(){return size()==0;}
- void push(memb a){memcpy(data+(++r),&a,sizeof(a));if(r>15)throw;}
- memb pop(){if(l<=r+1)return data[l++];else throw;}
- memb front(){return data[l];}
- memb back(){return data[r];}
+ void push(memb a){memcpy(data+(++t),&a,sizeof(a));if(t>15)throw;}
+ memb pop(){if(~t)return data[t--];else throw;}
+ memb top(){if(~t)return data[t];else throw;}
};
typedef struct _fncEntry{int hash,pos;}fncEntry;
class blrScriptVM