1.1 --- a/sourcepawn/jit/sp_vm_function.h Sun Jul 06 05:04:38 2008 +0000
1.2 +++ b/sourcepawn/jit/sp_vm_function.h Mon Jul 07 04:56:29 2008 +0000
1.3 @@ -32,7 +32,11 @@
1.4 #ifndef _INCLUDE_SOURCEMOD_BASEFUNCTION_H_
1.5 #define _INCLUDE_SOURCEMOD_BASEFUNCTION_H_
1.6
1.7 -#include "sm_globals.h"
1.8 +#include <sp_vm_api.h>
1.9 +
1.10 +class BaseRuntime;
1.11 +
1.12 +using namespace SourcePawn;
1.13
1.14 struct ParamInfo
1.15 {
1.16 @@ -56,7 +60,7 @@
1.17 friend class SourcePawnEngine;
1.18 public:
1.19 CFunction(uint32_t code_addr,
1.20 - IPluginContext *pContext,
1.21 + BaseRuntime *pRuntime,
1.22 funcid_t fnid,
1.23 uint32_t pub_id);
1.24 public:
1.25 @@ -71,29 +75,23 @@
1.26 virtual void Cancel();
1.27 virtual int CallFunction(const cell_t *params, unsigned int num_params, cell_t *result);
1.28 virtual IPluginContext *GetParentContext();
1.29 - inline bool IsInvalidated()
1.30 - {
1.31 - return m_Invalid;
1.32 - }
1.33 - inline void Invalidate()
1.34 - {
1.35 - m_Invalid = true;
1.36 - }
1.37 + bool IsInvalidated();
1.38 + void Invalidate();
1.39 bool IsRunnable();
1.40 funcid_t GetFunctionID();
1.41 + int Execute(IPluginContext *ctx, cell_t *result);
1.42 + int CallFunction(IPluginContext *ctx,
1.43 + const cell_t *params,
1.44 + unsigned int num_params,
1.45 + cell_t *result);
1.46 public:
1.47 - void Set(uint32_t code_addr, IPluginContext *plugin, funcid_t fnid, uint32_t pub_id);
1.48 + void Set(uint32_t code_addr, BaseRuntime *runtime, funcid_t fnid, uint32_t pub_id);
1.49 private:
1.50 int _PushString(const char *string, int sz_flags, int cp_flags, size_t len);
1.51 - inline int SetError(int err)
1.52 - {
1.53 - m_errorstate = err;
1.54 - return err;
1.55 - }
1.56 + int SetError(int err);
1.57 private:
1.58 uint32_t m_codeaddr;
1.59 - IPluginContext *m_pContext;
1.60 - sp_context_t *m_pCtx;
1.61 + BaseRuntime *m_pRuntime;
1.62 cell_t m_params[SP_MAX_EXEC_PARAMS];
1.63 ParamInfo m_info[SP_MAX_EXEC_PARAMS];
1.64 unsigned int m_curparam;
1.65 @@ -101,7 +99,6 @@
1.66 CFunction *m_pNext;
1.67 bool m_Invalid;
1.68 funcid_t m_FnId;
1.69 - sp_public_t *m_pPublic;
1.70 };
1.71
1.72 #endif //_INCLUDE_SOURCEMOD_BASEFUNCTION_H_