javascriptrun.swg 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. /* ---------------------------------------------------------------------------
  2. * These typedefs and defines are used to deal with v8 API changes
  3. *
  4. * ---------------------------------------------------------------------------*/
  5. // First v8 version that uses "SetWeak" and not "MakeWeak"
  6. #define SWIGV8_SETWEAK_VERSION 0x032224
  7. #if (SWIG_V8_VERSION < 0x031803)
  8. #define SWIGV8_STRING_NEW2(cstr, len) v8::String::New(cstr, len)
  9. #else
  10. #define SWIGV8_STRING_NEW2(cstr, len) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), cstr, v8::String::kNormalString, len)
  11. #endif
  12. #if (SWIG_V8_VERSION < 0x031903)
  13. typedef v8::Handle<v8::Value> SwigV8ReturnValue;
  14. typedef v8::Arguments SwigV8Arguments;
  15. typedef v8::AccessorInfo SwigV8PropertyCallbackInfo;
  16. #define SWIGV8_RETURN(val) return scope.Close(val)
  17. #define SWIGV8_RETURN_INFO(val, info) return scope.Close(val)
  18. #else
  19. typedef void SwigV8ReturnValue;
  20. typedef v8::FunctionCallbackInfo<v8::Value> SwigV8Arguments;
  21. typedef v8::PropertyCallbackInfo<v8::Value> SwigV8PropertyCallbackInfo;
  22. #define SWIGV8_RETURN(val) args.GetReturnValue().Set(val); return
  23. #define SWIGV8_RETURN_INFO(val, info) info.GetReturnValue().Set(val); return
  24. #endif
  25. #if (SWIG_V8_VERSION < 0x032117)
  26. #define SWIGV8_HANDLESCOPE() v8::HandleScope scope
  27. #define SWIGV8_HANDLESCOPE_ESC() v8::HandleScope scope
  28. #define SWIGV8_ESCAPE(val) return scope.Close(val)
  29. #elif (SWIG_V8_VERSION < 0x032224)
  30. #define SWIGV8_HANDLESCOPE() v8::HandleScope scope(v8::Isolate::GetCurrent());
  31. #define SWIGV8_HANDLESCOPE_ESC() v8::HandleScope scope(v8::Isolate::GetCurrent());
  32. #define SWIGV8_ESCAPE(val) return scope.Close(val)
  33. #else
  34. #define SWIGV8_HANDLESCOPE() v8::HandleScope scope(v8::Isolate::GetCurrent());
  35. #define SWIGV8_HANDLESCOPE_ESC() v8::EscapableHandleScope scope(v8::Isolate::GetCurrent());
  36. #define SWIGV8_ESCAPE(val) return scope.Escape(val)
  37. #endif
  38. #if (SWIG_V8_VERSION < 0x032224)
  39. #define SWIGV8_ADJUST_MEMORY(size) v8::V8::AdjustAmountOfExternalAllocatedMemory(size)
  40. #define SWIGV8_CURRENT_CONTEXT() v8::Context::GetCurrent()
  41. #define SWIGV8_THROW_EXCEPTION(err) v8::ThrowException(err)
  42. #define SWIGV8_STRING_NEW(str) v8::String::New(str)
  43. #define SWIGV8_SYMBOL_NEW(sym) v8::String::NewSymbol(sym)
  44. #else
  45. #define SWIGV8_ADJUST_MEMORY(size) v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(size)
  46. #define SWIGV8_CURRENT_CONTEXT() v8::Isolate::GetCurrent()->GetCurrentContext()
  47. #define SWIGV8_THROW_EXCEPTION(err) v8::Isolate::GetCurrent()->ThrowException(err)
  48. #define SWIGV8_STRING_NEW(str) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), str)
  49. #define SWIGV8_SYMBOL_NEW(sym) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), sym)
  50. #endif
  51. #if (SWIG_V8_VERSION < 0x032318)
  52. #define SWIGV8_ARRAY_NEW() v8::Array::New()
  53. #define SWIGV8_BOOLEAN_NEW(bool) v8::Boolean::New(bool)
  54. #define SWIGV8_EXTERNAL_NEW(val) v8::External::New(val)
  55. #define SWIGV8_FUNCTEMPLATE_NEW(func) v8::FunctionTemplate::New(func)
  56. #define SWIGV8_FUNCTEMPLATE_NEW_VOID() v8::FunctionTemplate::New()
  57. #define SWIGV8_INT32_NEW(num) v8::Int32::New(num)
  58. #define SWIGV8_INTEGER_NEW(num) v8::Integer::New(num)
  59. #define SWIGV8_INTEGER_NEW_UNS(num) v8::Integer::NewFromUnsigned(num)
  60. #define SWIGV8_NUMBER_NEW(num) v8::Number::New(num)
  61. #define SWIGV8_OBJECT_NEW() v8::Object::New()
  62. #define SWIGV8_UNDEFINED() v8::Undefined()
  63. #define SWIGV8_NULL() v8::Null()
  64. #else
  65. #define SWIGV8_ARRAY_NEW() v8::Array::New(v8::Isolate::GetCurrent())
  66. #define SWIGV8_BOOLEAN_NEW(bool) v8::Boolean::New(v8::Isolate::GetCurrent(), bool)
  67. #define SWIGV8_EXTERNAL_NEW(val) v8::External::New(v8::Isolate::GetCurrent(), val)
  68. #define SWIGV8_FUNCTEMPLATE_NEW(func) v8::FunctionTemplate::New(v8::Isolate::GetCurrent(), func)
  69. #define SWIGV8_FUNCTEMPLATE_NEW_VOID() v8::FunctionTemplate::New(v8::Isolate::GetCurrent())
  70. #define SWIGV8_INT32_NEW(num) v8::Int32::New(v8::Isolate::GetCurrent(), num)
  71. #define SWIGV8_INTEGER_NEW(num) v8::Integer::New(v8::Isolate::GetCurrent(), num)
  72. #define SWIGV8_INTEGER_NEW_UNS(num) v8::Integer::NewFromUnsigned(v8::Isolate::GetCurrent(), num)
  73. #define SWIGV8_NUMBER_NEW(num) v8::Number::New(v8::Isolate::GetCurrent(), num)
  74. #define SWIGV8_OBJECT_NEW() v8::Object::New(v8::Isolate::GetCurrent())
  75. #define SWIGV8_UNDEFINED() v8::Undefined(v8::Isolate::GetCurrent())
  76. #define SWIGV8_NULL() v8::Null(v8::Isolate::GetCurrent())
  77. #endif
  78. #if (SWIG_V8_VERSION < 0x031710)
  79. #define SWIGV8_SET_CLASS_TEMPL(class_templ, class) class_templ = v8::Persistent<v8::FunctionTemplate>::New(class);
  80. #elif (SWIG_V8_VERSION < 0x031900)
  81. #define SWIGV8_SET_CLASS_TEMPL(class_templ, class) class_templ = v8::Persistent<v8::FunctionTemplate>::New(v8::Isolate::GetCurrent(), class);
  82. #else
  83. #define SWIGV8_SET_CLASS_TEMPL(class_templ, class) class_templ.Reset(v8::Isolate::GetCurrent(), class);
  84. #endif
  85. /* ---------------------------------------------------------------------------
  86. * Error handling
  87. *
  88. * ---------------------------------------------------------------------------*/
  89. #define SWIG_Error(code, msg) SWIGV8_ErrorHandler.error(code, msg)
  90. #define SWIG_exception(code, msg) SWIGV8_ErrorHandler.error(code, msg)
  91. #define SWIG_fail goto fail
  92. #define SWIGV8_OVERLOAD false
  93. SWIGINTERN void SWIG_V8_Raise(const char *msg) {
  94. SWIGV8_THROW_EXCEPTION(v8::Exception::Error(SWIGV8_STRING_NEW(msg)));
  95. }
  96. /*
  97. Note: There are two contexts for handling errors.
  98. A static V8ErrorHandler is used in not overloaded methods.
  99. For overloaded methods the throwing type checking mechanism is used
  100. during dispatching. As V8 exceptions can not be resetted properly
  101. the trick is to use a dynamic ErrorHandler with same local name as the global
  102. one.
  103. - See defintion of SWIG_Error above.
  104. - See code templates 'JS_function_dispatcher', 'JS_functionwrapper_overload',
  105. and 'JS_function_dispatch_case' in javascriptcode.swg
  106. */
  107. class V8ErrorHandler {
  108. public:
  109. virtual ~V8ErrorHandler() {}
  110. virtual void error(int code, const char *msg) {
  111. SWIG_V8_Raise(msg);
  112. }
  113. };
  114. // this is used in usually
  115. SWIGRUNTIME V8ErrorHandler SWIGV8_ErrorHandler;
  116. // instances of this are used in overloaded functions
  117. class OverloadErrorHandler: public V8ErrorHandler {
  118. public:
  119. virtual void error(int code, const char *msg) {
  120. err = v8::Exception::Error(SWIGV8_STRING_NEW(msg));
  121. if(code != SWIG_TypeError) {
  122. SWIGV8_THROW_EXCEPTION(err);
  123. }
  124. }
  125. v8::Handle<v8::Value> err;
  126. };
  127. /* ---------------------------------------------------------------------------
  128. * Basic Proxy object
  129. *
  130. * ---------------------------------------------------------------------------*/
  131. // Note: to trigger the v8 gc more often one can tell v8 about the memory consumption
  132. // TODO: we could add a v8 specific parameter to control this value
  133. #define SWIGV8_AVG_OBJ_SIZE 1000
  134. class SWIGV8_Proxy {
  135. public:
  136. SWIGV8_Proxy(): swigCMemOwn(false), swigCObject(0), info(0) {
  137. SWIGV8_ADJUST_MEMORY(SWIGV8_AVG_OBJ_SIZE);
  138. };
  139. ~SWIGV8_Proxy() {
  140. #if (SWIG_V8_VERSION < 0x031710)
  141. handle.ClearWeak();
  142. handle.Dispose();
  143. #elif (SWIG_V8_VERSION < 0x032100)
  144. handle.ClearWeak(v8::Isolate::GetCurrent());
  145. handle.Dispose(v8::Isolate::GetCurrent());
  146. #elif (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  147. handle.ClearWeak();
  148. handle.Dispose();
  149. #else
  150. handle.ClearWeak();
  151. handle.Reset();
  152. #endif
  153. #if (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  154. handle.Clear();
  155. #endif
  156. SWIGV8_ADJUST_MEMORY(-SWIGV8_AVG_OBJ_SIZE);
  157. }
  158. bool swigCMemOwn;
  159. void *swigCObject;
  160. swig_type_info *info;
  161. v8::Persistent<v8::Object> handle;
  162. };
  163. class SWIGV8_ClientData {
  164. public:
  165. v8::Persistent<v8::FunctionTemplate> class_templ;
  166. #if (SWIG_V8_VERSION < 0x031710)
  167. void (*dtor) (v8::Persistent< v8::Value> object, void *parameter);
  168. #elif (SWIG_V8_VERSION < 0x031900)
  169. void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
  170. #elif (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  171. void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
  172. #else
  173. void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
  174. #endif
  175. };
  176. SWIGRUNTIME v8::Persistent<v8::FunctionTemplate> SWIGV8_SWIGTYPE_Proxy_class_templ;
  177. SWIGRUNTIME int SWIG_V8_ConvertInstancePtr(v8::Handle<v8::Object> objRef, void **ptr, swig_type_info *info, int flags) {
  178. SWIGV8_HANDLESCOPE();
  179. if(objRef->InternalFieldCount() < 1) return SWIG_ERROR;
  180. #if (SWIG_V8_VERSION < 0x031511)
  181. v8::Handle<v8::Value> cdataRef = objRef->GetInternalField(0);
  182. SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(v8::External::Unwrap(cdataRef));
  183. #else
  184. SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(objRef->GetAlignedPointerFromInternalField(0));
  185. #endif
  186. if(cdata == NULL) {
  187. return SWIG_ERROR;
  188. }
  189. if(cdata->info != info) {
  190. swig_cast_info *tc = SWIG_TypeCheckStruct(cdata->info, info);
  191. if (!tc && cdata->info->name) {
  192. tc = SWIG_TypeCheck(cdata->info->name, info);
  193. }
  194. bool type_valid = tc != 0;
  195. if(!type_valid) {
  196. return SWIG_TypeError;
  197. }
  198. }
  199. *ptr = cdata->swigCObject;
  200. if(flags & SWIG_POINTER_DISOWN) {
  201. cdata->swigCMemOwn = false;
  202. }
  203. return SWIG_OK;
  204. }
  205. #if (SWIG_V8_VERSION < 0x031710)
  206. SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Persistent< v8::Value > object, void *parameter) {
  207. SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
  208. #elif (SWIG_V8_VERSION < 0x031900)
  209. SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Value > object, void *parameter) {
  210. SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
  211. #elif (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  212. SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
  213. #else
  214. SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
  215. SWIGV8_Proxy *proxy = data.GetParameter();
  216. #endif
  217. delete proxy;
  218. }
  219. SWIGRUNTIME int SWIG_V8_GetInstancePtr(v8::Handle<v8::Value> valRef, void **ptr) {
  220. if(!valRef->IsObject()) {
  221. return SWIG_TypeError;
  222. }
  223. v8::Handle<v8::Object> objRef = valRef->ToObject();
  224. if(objRef->InternalFieldCount() < 1) return SWIG_ERROR;
  225. #if (SWIG_V8_VERSION < 0x031511)
  226. v8::Handle<v8::Value> cdataRef = objRef->GetInternalField(0);
  227. SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(v8::External::Unwrap(cdataRef));
  228. #else
  229. SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(objRef->GetAlignedPointerFromInternalField(0));
  230. #endif
  231. if(cdata == NULL) {
  232. return SWIG_ERROR;
  233. }
  234. *ptr = cdata->swigCObject;
  235. return SWIG_OK;
  236. }
  237. SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, swig_type_info *info, int flags) {
  238. SWIGV8_Proxy *cdata = new SWIGV8_Proxy();
  239. cdata->swigCObject = ptr;
  240. cdata->swigCMemOwn = (flags & SWIG_POINTER_OWN) ? 1 : 0;
  241. cdata->info = info;
  242. #if (SWIG_V8_VERSION < 0x031511)
  243. obj->SetPointerInInternalField(0, cdata);
  244. #else
  245. obj->SetAlignedPointerInInternalField(0, cdata);
  246. #endif
  247. #if (SWIG_V8_VERSION < 0x031710)
  248. cdata->handle = v8::Persistent<v8::Object>::New(obj);
  249. #elif (SWIG_V8_VERSION < 0x031900)
  250. cdata->handle = v8::Persistent<v8::Object>::New(v8::Isolate::GetCurrent(), obj);
  251. #else
  252. cdata->handle.Reset(v8::Isolate::GetCurrent(), obj);
  253. #endif
  254. #if (SWIG_V8_VERSION < 0x031710)
  255. // clientdata must be set for owned data as we need to register the dtor
  256. if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
  257. cdata->handle.MakeWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
  258. } else {
  259. cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
  260. }
  261. #elif (SWIG_V8_VERSION < 0x031918)
  262. if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
  263. cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
  264. } else {
  265. cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, SWIGV8_Proxy_DefaultDtor);
  266. }
  267. #elif (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  268. if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
  269. cdata->handle.MakeWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
  270. } else {
  271. cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
  272. }
  273. #else
  274. if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
  275. cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
  276. } else {
  277. cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor);
  278. }
  279. #endif
  280. #if (SWIG_V8_VERSION < 0x031710)
  281. cdata->handle.MarkIndependent();
  282. #elif (SWIG_V8_VERSION < 0x032100)
  283. cdata->handle.MarkIndependent(v8::Isolate::GetCurrent());
  284. #else
  285. cdata->handle.MarkIndependent();
  286. #endif
  287. }
  288. SWIGRUNTIME int SWIG_V8_ConvertPtr(v8::Handle<v8::Value> valRef, void **ptr, swig_type_info *info, int flags) {
  289. SWIGV8_HANDLESCOPE();
  290. /* special case: JavaScript null => C NULL pointer */
  291. if(valRef->IsNull()) {
  292. *ptr=0;
  293. return SWIG_OK;
  294. }
  295. if(!valRef->IsObject()) {
  296. return SWIG_TypeError;
  297. }
  298. v8::Handle<v8::Object> objRef = valRef->ToObject();
  299. return SWIG_V8_ConvertInstancePtr(objRef, ptr, info, flags);
  300. }
  301. SWIGRUNTIME v8::Handle<v8::Value> SWIG_V8_NewPointerObj(void *ptr, swig_type_info *info, int flags) {
  302. SWIGV8_HANDLESCOPE_ESC();
  303. v8::Handle<v8::FunctionTemplate> class_templ;
  304. if (ptr == NULL) {
  305. #if (SWIG_V8_VERSION < 0x031903)
  306. SWIGV8_ESCAPE(SWIGV8_NULL());
  307. #else
  308. v8::Local<v8::Primitive> result = SWIGV8_NULL();
  309. SWIGV8_ESCAPE(result);
  310. #endif
  311. }
  312. #if (SWIG_V8_VERSION < 0x031903)
  313. if(info->clientdata != 0) {
  314. class_templ = ((SWIGV8_ClientData*) info->clientdata)->class_templ;
  315. } else {
  316. class_templ = SWIGV8_SWIGTYPE_Proxy_class_templ;
  317. }
  318. #else
  319. v8::Isolate *isolate = v8::Isolate::GetCurrent();
  320. if(info->clientdata != 0) {
  321. class_templ = v8::Local<v8::FunctionTemplate>::New(isolate, ((SWIGV8_ClientData*) info->clientdata)->class_templ);
  322. } else {
  323. class_templ = v8::Local<v8::FunctionTemplate>::New(isolate, SWIGV8_SWIGTYPE_Proxy_class_templ);
  324. }
  325. #endif
  326. // v8::Handle<v8::Object> result = class_templ->InstanceTemplate()->NewInstance();
  327. v8::Local<v8::Object> result = class_templ->InstanceTemplate()->NewInstance();
  328. SWIGV8_SetPrivateData(result, ptr, info, flags);
  329. SWIGV8_ESCAPE(result);
  330. }
  331. #define SWIG_ConvertPtr(obj, ptr, info, flags) SWIG_V8_ConvertPtr(obj, ptr, info, flags)
  332. #define SWIG_NewPointerObj(ptr, info, flags) SWIG_V8_NewPointerObj(ptr, info, flags)
  333. #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_V8_ConvertInstancePtr(obj, pptr, type, flags)
  334. #define SWIG_NewInstanceObj(thisvalue, type, flags) SWIG_V8_NewPointerObj(thisvalue, type, flags)
  335. #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_V8_ConvertPtr(obj, pptr, type, 0)
  336. #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_V8_NewPointerObj(ptr, type, 0)
  337. #define SWIG_GetInstancePtr(obj, ptr) SWIG_V8_GetInstancePtr(obj, ptr)
  338. SWIGRUNTIME SwigV8ReturnValue _SWIGV8_wrap_equals(const SwigV8Arguments &args) {
  339. SWIGV8_HANDLESCOPE();
  340. v8::Handle<v8::Value> jsresult;
  341. void *arg1 = (void *) 0 ;
  342. void *arg2 = (void *) 0 ;
  343. bool result;
  344. int res1;
  345. int res2;
  346. if(args.Length() != 1) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for equals.");
  347. res1 = SWIG_GetInstancePtr(args.Holder(), &arg1);
  348. if (!SWIG_IsOK(res1)) {
  349. SWIG_exception_fail(SWIG_ERROR, "Could not get pointer from 'this' object for equals.");
  350. }
  351. res2 = SWIG_GetInstancePtr(args[0], &arg2);
  352. if (!SWIG_IsOK(res2)) {
  353. SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "equals" "', argument " "1"" of type '" "void *""'");
  354. }
  355. result = (bool)(arg1 == arg2);
  356. jsresult = SWIGV8_BOOLEAN_NEW(result);
  357. SWIGV8_RETURN(jsresult);
  358. goto fail;
  359. fail:
  360. SWIGV8_RETURN(SWIGV8_UNDEFINED());
  361. }
  362. SWIGRUNTIME SwigV8ReturnValue _wrap_getCPtr(const SwigV8Arguments &args) {
  363. SWIGV8_HANDLESCOPE();
  364. v8::Handle<v8::Value> jsresult;
  365. void *arg1 = (void *) 0 ;
  366. long result;
  367. int res1;
  368. res1 = SWIG_GetInstancePtr(args.Holder(), &arg1);
  369. if (!SWIG_IsOK(res1)) {
  370. SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "getCPtr" "', argument " "1"" of type '" "void *""'");
  371. }
  372. result = (long)arg1;
  373. jsresult = SWIGV8_NUMBER_NEW(result);
  374. SWIGV8_RETURN(jsresult);
  375. goto fail;
  376. fail:
  377. SWIGV8_RETURN(SWIGV8_UNDEFINED());
  378. }
  379. /* ---------------------------------------------------------------------------
  380. * PackedData object
  381. *
  382. * ---------------------------------------------------------------------------*/
  383. class SwigV8PackedData {
  384. public:
  385. SwigV8PackedData(void *data, size_t size, swig_type_info *type): data(data), size(size), type(type) {};
  386. ~SwigV8PackedData() {
  387. };
  388. void *data;
  389. size_t size;
  390. swig_type_info *type;
  391. v8::Persistent<v8::Object> handle;
  392. };
  393. SWIGRUNTIMEINLINE
  394. int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
  395. SWIGV8_HANDLESCOPE();
  396. v8::Handle<v8::Object> objRef = valRef->ToObject();
  397. if(objRef->InternalFieldCount() < 1) return false;
  398. v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
  399. return (flag->IsBoolean() && flag->BooleanValue());
  400. }
  401. SWIGRUNTIME
  402. swig_type_info *SwigV8Packed_UnpackData(v8::Handle<v8::Value> valRef, void *ptr, size_t size) {
  403. if (SwigV8Packed_Check(valRef)) {
  404. SWIGV8_HANDLESCOPE();
  405. SwigV8PackedData *sobj;
  406. v8::Handle<v8::Object> objRef = valRef->ToObject();
  407. #if (SWIG_V8_VERSION < 0x031511)
  408. v8::Handle<v8::Value> cdataRef = objRef->GetInternalField(0);
  409. sobj = static_cast<SwigV8PackedData*>(v8::External::Unwrap(cdataRef));
  410. #else
  411. sobj = static_cast<SwigV8PackedData*>(objRef->GetAlignedPointerFromInternalField(0));
  412. #endif
  413. if (sobj == NULL || sobj->size != size) return 0;
  414. memcpy(ptr, sobj->data, size);
  415. return sobj->type;
  416. } else {
  417. return 0;
  418. }
  419. }
  420. SWIGRUNTIME
  421. int SWIGV8_ConvertPacked(v8::Handle<v8::Value> valRef, void *ptr, size_t sz, swig_type_info *ty) {
  422. swig_type_info *to = SwigV8Packed_UnpackData(valRef, ptr, sz);
  423. if (!to) return SWIG_ERROR;
  424. if (ty) {
  425. if (to != ty) {
  426. /* check type cast? */
  427. swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
  428. if (!tc) return SWIG_ERROR;
  429. }
  430. }
  431. return SWIG_OK;
  432. }
  433. #if (SWIG_V8_VERSION < 0x031710)
  434. SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Persistent< v8::Value > object, void *parameter) {
  435. SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
  436. #elif (SWIG_V8_VERSION < 0x031900)
  437. SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Value> object, void *parameter) {
  438. SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
  439. #elif (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  440. SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
  441. #else
  442. SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
  443. v8::Local<v8::Object> object = data.GetValue();
  444. SwigV8PackedData *cdata = data.GetParameter();
  445. #endif
  446. delete cdata;
  447. #if (SWIG_V8_VERSION < 0x031710)
  448. object.Clear();
  449. object.Dispose();
  450. #elif (SWIG_V8_VERSION < 0x031900)
  451. object.Clear();
  452. object.Dispose(isolate);
  453. #elif (SWIG_V8_VERSION < 0x032100)
  454. object->Dispose(isolate);
  455. #elif (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  456. object->Dispose();
  457. #else
  458. object.Clear();
  459. #endif
  460. }
  461. SWIGRUNTIME
  462. v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_info *type) {
  463. SWIGV8_HANDLESCOPE_ESC();
  464. SwigV8PackedData *cdata = new SwigV8PackedData(data, size, type);
  465. // v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
  466. v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
  467. obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
  468. #if (SWIG_V8_VERSION < 0x031511)
  469. obj->SetPointerInInternalField(0, cdata);
  470. #else
  471. obj->SetAlignedPointerInInternalField(0, cdata);
  472. #endif
  473. #if (SWIG_V8_VERSION < 0x031710)
  474. cdata->handle = v8::Persistent<v8::Object>::New(obj);
  475. #elif (SWIG_V8_VERSION < 0x031900)
  476. cdata->handle = v8::Persistent<v8::Object>::New(v8::Isolate::GetCurrent(), obj);
  477. #else
  478. cdata->handle.Reset(v8::Isolate::GetCurrent(), obj);
  479. #endif
  480. #if (SWIG_V8_VERSION < 0x031710)
  481. cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
  482. #elif (SWIG_V8_VERSION < 0x031918)
  483. cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
  484. #elif (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
  485. cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
  486. #else
  487. cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
  488. // v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
  489. #endif
  490. #if (SWIG_V8_VERSION < 0x031710)
  491. cdata->handle.MarkIndependent();
  492. #elif (SWIG_V8_VERSION < 0x032100)
  493. cdata->handle.MarkIndependent(v8::Isolate::GetCurrent());
  494. #else
  495. cdata->handle.MarkIndependent();
  496. #endif
  497. SWIGV8_ESCAPE(obj);
  498. }
  499. #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIGV8_ConvertPacked(obj, ptr, sz, ty)
  500. #define SWIG_NewMemberObj(ptr, sz, type) SWIGV8_NewPackedObj(ptr, sz, type)
  501. /* ---------------------------------------------------------------------------
  502. * Support for IN/OUTPUT typemaps (see Lib/typemaps/inoutlist.swg)
  503. *
  504. * ---------------------------------------------------------------------------*/
  505. SWIGRUNTIME
  506. #if (SWIG_V8_VERSION < 0x031903)
  507. v8::Handle<v8::Value> SWIGV8_AppendOutput(v8::Handle<v8::Value> result, v8::Handle<v8::Value> obj) {
  508. #else
  509. v8::Handle<v8::Value> SWIGV8_AppendOutput(v8::Local<v8::Value> result, v8::Handle<v8::Value> obj) {
  510. #endif
  511. SWIGV8_HANDLESCOPE_ESC();
  512. if (result->IsUndefined()) {
  513. result = SWIGV8_ARRAY_NEW();
  514. }
  515. #if (SWIG_V8_VERSION < 0x031903)
  516. v8::Handle<v8::Array> arr = v8::Handle<v8::Array>::Cast(result);
  517. #else
  518. v8::Local<v8::Array> arr = v8::Local<v8::Array>::Cast(result);
  519. #endif
  520. arr->Set(arr->Length(), obj);
  521. SWIGV8_ESCAPE(arr);
  522. }