1/* ----------------------------------------------------------------------------- 2 * See the LICENSE file for information on copyright, usage and redistribution 3 * of SWIG, and the README file for authors - http://www.swig.org/release.html. 4 * 5 * pikerun.swg 6 * 7 * This file contains the runtime support for Pike modules 8 * and includes code for managing global variables and pointer 9 * type checking. 10 * ----------------------------------------------------------------------------- */ 11 12#ifdef __cplusplus 13extern "C" { 14#endif 15#include "object.h" 16#include "program.h" 17#ifdef __cplusplus 18} 19#endif 20 21/* Stores information about a wrapped object */ 22typedef struct swig_object_wrapper { 23 void *self; 24 swig_type_info *type; 25} swig_object_wrapper; 26 27#ifdef THIS 28#undef THIS 29#endif 30#define THIS (((swig_object_wrapper *) Pike_fp->current_storage)->self) 31 32#define SWIG_ConvertPtr SWIG_Pike_ConvertPtr 33#define SWIG_NewPointerObj SWIG_Pike_NewPointerObj 34#define SWIG_GetModule(clientdata) SWIG_Pike_GetModule() 35#define SWIG_SetModule(clientdata, pointer) SWIG_Pike_SetModule(pointer) 36 37/* These need to be filled in before type sharing between modules will work */ 38static swig_module_info *SWIG_Pike_GetModule() { 39 return 0; 40} 41 42static void SWIG_Pike_SetModule(swig_module_info *pointer) { 43 44} 45 46/* Convert a pointer value */ 47static int 48SWIG_Pike_ConvertPtr(struct object *obj, void **ptr, swig_type_info *ty, int flags) { 49 struct program *pr; 50 swig_cast_info *tc; 51 swig_object_wrapper *obj_wrapper; 52 53 if (ty) { 54 pr = (struct program *) ty->clientdata; 55 obj_wrapper = (swig_object_wrapper *) get_storage(obj, pr); 56 if (obj_wrapper && obj_wrapper->type) { 57 tc = SWIG_TypeCheckStruct(obj_wrapper->type, ty); 58 if (tc) { 59 int newmemory = 0; 60 *ptr = SWIG_TypeCast(tc, obj_wrapper->self, &newmemory); 61 assert(!newmemory); /* newmemory handling not yet implemented */ 62 return 0; 63 } 64 } 65 } 66 return -1; 67} 68 69/* Create a new pointer object */ 70static struct object * 71SWIG_Pike_NewPointerObj(void *ptr, swig_type_info *type, int own) { 72 return 0; 73} 74