PageRenderTime 46ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Lib/pike/pikerun.swg

#
Unknown | 70 lines | 60 code | 10 blank | 0 comment | 0 complexity | 9f8e107e161cc7855c41785c77cb9d3c MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. /* -----------------------------------------------------------------------------
  2. * pikerun.swg
  3. *
  4. * This file contains the runtime support for Pike modules
  5. * and includes code for managing global variables and pointer
  6. * type checking.
  7. * ----------------------------------------------------------------------------- */
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #include "object.h"
  12. #include "program.h"
  13. #ifdef __cplusplus
  14. }
  15. #endif
  16. /* Stores information about a wrapped object */
  17. typedef struct swig_object_wrapper {
  18. void *self;
  19. swig_type_info *type;
  20. } swig_object_wrapper;
  21. #ifdef THIS
  22. #undef THIS
  23. #endif
  24. #define THIS (((swig_object_wrapper *) Pike_fp->current_storage)->self)
  25. #define SWIG_ConvertPtr SWIG_Pike_ConvertPtr
  26. #define SWIG_NewPointerObj SWIG_Pike_NewPointerObj
  27. #define SWIG_GetModule(clientdata) SWIG_Pike_GetModule()
  28. #define SWIG_SetModule(clientdata, pointer) SWIG_Pike_SetModule(pointer)
  29. /* These need to be filled in before type sharing between modules will work */
  30. static swig_module_info *SWIG_Pike_GetModule() {
  31. return 0;
  32. }
  33. static void SWIG_Pike_SetModule(swig_module_info *pointer) {
  34. }
  35. /* Convert a pointer value */
  36. static int
  37. SWIG_Pike_ConvertPtr(struct object *obj, void **ptr, swig_type_info *ty, int flags) {
  38. struct program *pr;
  39. swig_cast_info *tc;
  40. swig_object_wrapper *obj_wrapper;
  41. if (ty) {
  42. pr = (struct program *) ty->clientdata;
  43. obj_wrapper = (swig_object_wrapper *) get_storage(obj, pr);
  44. if (obj_wrapper && obj_wrapper->type) {
  45. tc = SWIG_TypeCheckStruct(obj_wrapper->type, ty);
  46. if (tc) {
  47. int newmemory = 0;
  48. *ptr = SWIG_TypeCast(tc, obj_wrapper->self, &newmemory);
  49. assert(!newmemory); /* newmemory handling not yet implemented */
  50. return 0;
  51. }
  52. }
  53. }
  54. return -1;
  55. }
  56. /* Create a new pointer object */
  57. static struct object *
  58. SWIG_Pike_NewPointerObj(void *ptr, swig_type_info *type, int own) {
  59. return 0;
  60. }