Better HL support, HelloWorld running in software

This commit is contained in:
Joshua Granick
2018-06-07 17:06:36 -07:00
parent 742406c0cc
commit ebda41a737
35 changed files with 1152 additions and 393 deletions

View File

@@ -0,0 +1,47 @@
#ifndef LIME_SYSTEM_VALUE_POINTER_H
#define LIME_SYSTEM_VALUE_POINTER_H
#include <hl.h>
#include <hx/CFFIPrime.h>
namespace lime {
class ValuePointer {
public:
ValuePointer (vobj* handle);
ValuePointer (vdynamic* handle);
ValuePointer (vclosure* handle);
ValuePointer (value handle);
~ValuePointer ();
void* Call ();
void* Call (void* arg0);
void* Call (void* arg0, void* arg1);
void* Call (void* arg0, void* arg1, void* arg2);
void* Call (void* arg0, void* arg1, void* arg2, void* arg3);
void* Call (void* arg0, void* arg1, void* arg2, void* arg3, void* arg4);
void* Get () const;
bool IsCFFIValue ();
bool IsHLValue ();
void Set (vobj* handle);
void Set (value handle);
private:
gcroot cffiRoot;
value* cffiValue;
vobj* hlValue;
};
}
#endif