forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
 | 
						|
#include <hx/Native.h>
 | 
						|
#include <api/HaxeObject.h>
 | 
						|
#include <api/HaxeApi.h>
 | 
						|
 | 
						|
 | 
						|
struct MyStruct
 | 
						|
{
 | 
						|
   hx::Ref<api::HaxeObject *> haxeRef;
 | 
						|
};
 | 
						|
 | 
						|
extern void __hxcpp_collect(bool inMajor);
 | 
						|
 | 
						|
int main(int argc, char **argv)
 | 
						|
{
 | 
						|
   MyStruct *myStruct = new MyStruct();
 | 
						|
 | 
						|
 | 
						|
   const char *err = hx::Init();
 | 
						|
   if (err)
 | 
						|
   {
 | 
						|
      printf("Could not initialize library: %s\n", err);
 | 
						|
      return -1;
 | 
						|
   }
 | 
						|
   else
 | 
						|
   {
 | 
						|
      hx::NativeAttach autoAttach;
 | 
						|
 | 
						|
      api::HaxeObject *obj = api::HaxeApi::createBase();
 | 
						|
      obj->setName("child");
 | 
						|
 | 
						|
      myStruct->haxeRef = obj;
 | 
						|
      obj->setName("Name");
 | 
						|
 | 
						|
      api::HaxeObject *child = obj->createChild();
 | 
						|
   }
 | 
						|
 | 
						|
   {
 | 
						|
      hx::NativeAttach autoAttach;
 | 
						|
      __hxcpp_collect(true);
 | 
						|
   }
 | 
						|
 | 
						|
   {
 | 
						|
      hx::NativeAttach autoAttach;
 | 
						|
      if (myStruct->haxeRef->getName()!="Name")
 | 
						|
      {
 | 
						|
         printf("Could not get value back (%s)\n", myStruct->haxeRef->getName().c_str() );
 | 
						|
         return -1;
 | 
						|
      }
 | 
						|
   }
 | 
						|
 | 
						|
   {
 | 
						|
      hx::NativeAttach autoAttach0;
 | 
						|
      hx::NativeAttach autoAttach1;
 | 
						|
      hx::NativeAttach autoAttach2;
 | 
						|
      hx::NativeAttach autoAttach3;
 | 
						|
      if (hx::GcGetThreadAttachedCount()!=4)
 | 
						|
      {
 | 
						|
         printf("Bad attach count\n");
 | 
						|
         return -1;
 | 
						|
      }
 | 
						|
   }
 | 
						|
   if (hx::GcGetThreadAttachedCount()!=0)
 | 
						|
   {
 | 
						|
      printf("Bad clear attach count\n");
 | 
						|
      return -1;
 | 
						|
   }
 | 
						|
 | 
						|
   printf("all good\n");
 | 
						|
   return 0;
 | 
						|
}
 | 
						|
 |