summaryrefslogtreecommitdiff
path: root/share/swig/2.0.11/pike/pikerun.swg
diff options
context:
space:
mode:
Diffstat (limited to 'share/swig/2.0.11/pike/pikerun.swg')
-rw-r--r--share/swig/2.0.11/pike/pikerun.swg71
1 files changed, 71 insertions, 0 deletions
diff --git a/share/swig/2.0.11/pike/pikerun.swg b/share/swig/2.0.11/pike/pikerun.swg
new file mode 100644
index 0000000..6ec1143
--- /dev/null
+++ b/share/swig/2.0.11/pike/pikerun.swg
@@ -0,0 +1,71 @@
+/* -----------------------------------------------------------------------------
+ * pikerun.swg
+ *
+ * This file contains the runtime support for Pike modules
+ * and includes code for managing global variables and pointer
+ * type checking.
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "pike/object.h"
+#include "pike/program.h"
+#ifdef __cplusplus
+}
+#endif
+#include <assert.h>
+
+/* Stores information about a wrapped object */
+typedef struct swig_object_wrapper {
+ void *self;
+ swig_type_info *type;
+} swig_object_wrapper;
+
+#ifdef THIS
+#undef THIS
+#endif
+#define THIS (((swig_object_wrapper *) Pike_fp->current_storage)->self)
+
+#define SWIG_ConvertPtr SWIG_Pike_ConvertPtr
+#define SWIG_NewPointerObj SWIG_Pike_NewPointerObj
+#define SWIG_GetModule(clientdata) SWIG_Pike_GetModule(clientdata)
+#define SWIG_SetModule(clientdata, pointer) SWIG_Pike_SetModule(pointer)
+
+/* These need to be filled in before type sharing between modules will work */
+static swig_module_info *SWIG_Pike_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
+ return 0;
+}
+
+static void SWIG_Pike_SetModule(swig_module_info *pointer) {
+
+}
+
+/* Convert a pointer value */
+static int
+SWIG_Pike_ConvertPtr(struct object *obj, void **ptr, swig_type_info *ty, int flags) {
+ struct program *pr;
+ swig_cast_info *tc;
+ swig_object_wrapper *obj_wrapper;
+
+ if (ty) {
+ pr = (struct program *) ty->clientdata;
+ obj_wrapper = (swig_object_wrapper *) get_storage(obj, pr);
+ if (obj_wrapper && obj_wrapper->type) {
+ tc = SWIG_TypeCheckStruct(obj_wrapper->type, ty);
+ if (tc) {
+ int newmemory = 0;
+ *ptr = SWIG_TypeCast(tc, obj_wrapper->self, &newmemory);
+ assert(!newmemory); /* newmemory handling not yet implemented */
+ return 0;
+ }
+ }
+ }
+ return -1;
+}
+
+/* Create a new pointer object */
+static struct object *
+SWIG_Pike_NewPointerObj(void *ptr, swig_type_info *type, int own) {
+ return 0;
+}