relax4 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/ext/relax4_wrap.c CHANGED
@@ -1,6 +1,6 @@
1
1
  /* ----------------------------------------------------------------------------
2
2
  * This file was automatically generated by SWIG (http://www.swig.org).
3
- * Version 1.3.29
3
+ * Version 1.3.38
4
4
  *
5
5
  * This file is not intended to be easily readable and contains a number of
6
6
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -9,6 +9,7 @@
9
9
  * ----------------------------------------------------------------------------- */
10
10
 
11
11
  #define SWIGRUBY
12
+
12
13
  /* -----------------------------------------------------------------------------
13
14
  * This section contains generic SWIG labels for method/variable
14
15
  * declarations/attributes, and other compiler dependent labels.
@@ -16,14 +17,14 @@
16
17
 
17
18
  /* template workaround for compilers that cannot correctly implement the C++ standard */
18
19
  #ifndef SWIGTEMPLATEDISAMBIGUATOR
19
- # if defined(__SUNPRO_CC)
20
- # if (__SUNPRO_CC <= 0x560)
21
- # define SWIGTEMPLATEDISAMBIGUATOR template
22
- # else
23
- # define SWIGTEMPLATEDISAMBIGUATOR
24
- # endif
20
+ # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
21
+ # define SWIGTEMPLATEDISAMBIGUATOR template
22
+ # elif defined(__HP_aCC)
23
+ /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
24
+ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
25
+ # define SWIGTEMPLATEDISAMBIGUATOR template
25
26
  # else
26
- # define SWIGTEMPLATEDISAMBIGUATOR
27
+ # define SWIGTEMPLATEDISAMBIGUATOR
27
28
  # endif
28
29
  #endif
29
30
 
@@ -51,6 +52,12 @@
51
52
  # endif
52
53
  #endif
53
54
 
55
+ #ifndef SWIG_MSC_UNSUPPRESS_4505
56
+ # if defined(_MSC_VER)
57
+ # pragma warning(disable : 4505) /* unreferenced local function has been removed */
58
+ # endif
59
+ #endif
60
+
54
61
  #ifndef SWIGUNUSEDPARM
55
62
  # ifdef __cplusplus
56
63
  # define SWIGUNUSEDPARM(p)
@@ -102,10 +109,16 @@
102
109
  #endif
103
110
 
104
111
  /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
105
- #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER)
112
+ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
106
113
  # define _CRT_SECURE_NO_DEPRECATE
107
114
  #endif
108
115
 
116
+ /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
117
+ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
118
+ # define _SCL_SECURE_NO_DEPRECATE
119
+ #endif
120
+
121
+
109
122
  /* -----------------------------------------------------------------------------
110
123
  * This section contains generic SWIG labels for method/variable
111
124
  * declarations/attributes, and other compiler dependent labels.
@@ -113,14 +126,14 @@
113
126
 
114
127
  /* template workaround for compilers that cannot correctly implement the C++ standard */
115
128
  #ifndef SWIGTEMPLATEDISAMBIGUATOR
116
- # if defined(__SUNPRO_CC)
117
- # if (__SUNPRO_CC <= 0x560)
118
- # define SWIGTEMPLATEDISAMBIGUATOR template
119
- # else
120
- # define SWIGTEMPLATEDISAMBIGUATOR
121
- # endif
129
+ # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
130
+ # define SWIGTEMPLATEDISAMBIGUATOR template
131
+ # elif defined(__HP_aCC)
132
+ /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
133
+ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
134
+ # define SWIGTEMPLATEDISAMBIGUATOR template
122
135
  # else
123
- # define SWIGTEMPLATEDISAMBIGUATOR
136
+ # define SWIGTEMPLATEDISAMBIGUATOR
124
137
  # endif
125
138
  #endif
126
139
 
@@ -148,6 +161,12 @@
148
161
  # endif
149
162
  #endif
150
163
 
164
+ #ifndef SWIG_MSC_UNSUPPRESS_4505
165
+ # if defined(_MSC_VER)
166
+ # pragma warning(disable : 4505) /* unreferenced local function has been removed */
167
+ # endif
168
+ #endif
169
+
151
170
  #ifndef SWIGUNUSEDPARM
152
171
  # ifdef __cplusplus
153
172
  # define SWIGUNUSEDPARM(p)
@@ -199,20 +218,26 @@
199
218
  #endif
200
219
 
201
220
  /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
202
- #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER)
221
+ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
203
222
  # define _CRT_SECURE_NO_DEPRECATE
204
223
  #endif
205
224
 
225
+ /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
226
+ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
227
+ # define _SCL_SECURE_NO_DEPRECATE
228
+ #endif
229
+
230
+
206
231
  /* -----------------------------------------------------------------------------
207
232
  * swigrun.swg
208
233
  *
209
- * This file contains generic CAPI SWIG runtime support for pointer
234
+ * This file contains generic C API SWIG runtime support for pointer
210
235
  * type checking.
211
236
  * ----------------------------------------------------------------------------- */
212
237
 
213
238
  /* This should only be incremented when either the layout of swig_type_info changes,
214
239
  or for whatever reason, the runtime changes incompatibly */
215
- #define SWIG_RUNTIME_VERSION "2"
240
+ #define SWIG_RUNTIME_VERSION "4"
216
241
 
217
242
  /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
218
243
  #ifdef SWIG_TYPE_TABLE
@@ -225,11 +250,11 @@
225
250
 
226
251
  /*
227
252
  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
228
- creating a static or dynamic library from the swig runtime code.
229
- In 99.9% of the cases, swig just needs to declare them as 'static'.
253
+ creating a static or dynamic library from the SWIG runtime code.
254
+ In 99.9% of the cases, SWIG just needs to declare them as 'static'.
230
255
 
231
- But only do this if is strictly necessary, ie, if you have problems
232
- with your compiler or so.
256
+ But only do this if strictly necessary, ie, if you have problems
257
+ with your compiler or suchlike.
233
258
  */
234
259
 
235
260
  #ifndef SWIGRUNTIME
@@ -247,6 +272,7 @@
247
272
 
248
273
  /* Flags for pointer conversions */
249
274
  #define SWIG_POINTER_DISOWN 0x1
275
+ #define SWIG_CAST_NEW_MEMORY 0x2
250
276
 
251
277
  /* Flags for new pointer objects */
252
278
  #define SWIG_POINTER_OWN 0x1
@@ -255,14 +281,14 @@
255
281
  /*
256
282
  Flags/methods for returning states.
257
283
 
258
- The swig conversion methods, as ConvertPtr, return and integer
284
+ The SWIG conversion methods, as ConvertPtr, return and integer
259
285
  that tells if the conversion was successful or not. And if not,
260
286
  an error code can be returned (see swigerrors.swg for the codes).
261
287
 
262
288
  Use the following macros/flags to set or process the returning
263
289
  states.
264
290
 
265
- In old swig versions, you usually write code as:
291
+ In old versions of SWIG, code such as the following was usually written:
266
292
 
267
293
  if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
268
294
  // success code
@@ -270,7 +296,7 @@
270
296
  //fail code
271
297
  }
272
298
 
273
- Now you can be more explicit as:
299
+ Now you can be more explicit:
274
300
 
275
301
  int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
276
302
  if (SWIG_IsOK(res)) {
@@ -279,7 +305,7 @@
279
305
  // fail code
280
306
  }
281
307
 
282
- that seems to be the same, but now you can also do
308
+ which is the same really, but now you can also do
283
309
 
284
310
  Type *ptr;
285
311
  int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
@@ -297,7 +323,7 @@
297
323
 
298
324
  I.e., now SWIG_ConvertPtr can return new objects and you can
299
325
  identify the case and take care of the deallocation. Of course that
300
- requires also to SWIG_ConvertPtr to return new result values, as
326
+ also requires SWIG_ConvertPtr to return new result values, such as
301
327
 
302
328
  int SWIG_ConvertPtr(obj, ptr,...) {
303
329
  if (<obj is ok>) {
@@ -315,7 +341,7 @@
315
341
 
316
342
  Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
317
343
  more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
318
- swig errors code.
344
+ SWIG errors code.
319
345
 
320
346
  Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
321
347
  allows to return the 'cast rank', for example, if you have this
@@ -329,9 +355,8 @@
329
355
  fooi(1) // cast rank '0'
330
356
 
331
357
  just use the SWIG_AddCast()/SWIG_CheckState()
358
+ */
332
359
 
333
-
334
- */
335
360
  #define SWIG_OK (0)
336
361
  #define SWIG_ERROR (-1)
337
362
  #define SWIG_IsOK(r) (r >= 0)
@@ -356,7 +381,6 @@
356
381
  #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
357
382
  #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
358
383
 
359
-
360
384
  /* Cast-Rank Mode */
361
385
  #if defined(SWIG_CASTRANK_MODE)
362
386
  # ifndef SWIG_TypeRank
@@ -379,18 +403,16 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
379
403
  #endif
380
404
 
381
405
 
382
-
383
-
384
406
  #include <string.h>
385
407
 
386
408
  #ifdef __cplusplus
387
409
  extern "C" {
388
410
  #endif
389
411
 
390
- typedef void *(*swig_converter_func)(void *);
412
+ typedef void *(*swig_converter_func)(void *, int *);
391
413
  typedef struct swig_type_info *(*swig_dycast_func)(void **);
392
414
 
393
- /* Structure to store inforomation on one type */
415
+ /* Structure to store information on one type */
394
416
  typedef struct swig_type_info {
395
417
  const char *name; /* mangled name of this type */
396
418
  const char *str; /* human readable name of this type */
@@ -435,7 +457,7 @@ SWIG_TypeNameComp(const char *f1, const char *l1,
435
457
  while ((*f2 == ' ') && (f2 != l2)) ++f2;
436
458
  if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
437
459
  }
438
- return (l1 - f1) - (l2 - f2);
460
+ return (int)((l1 - f1) - (l2 - f2));
439
461
  }
440
462
 
441
463
  /*
@@ -477,48 +499,66 @@ SWIG_TypeCompare(const char *nb, const char *tb) {
477
499
  }
478
500
 
479
501
 
480
- /* think of this as a c++ template<> or a scheme macro */
481
- #define SWIG_TypeCheck_Template(comparison, ty) \
482
- if (ty) { \
483
- swig_cast_info *iter = ty->cast; \
484
- while (iter) { \
485
- if (comparison) { \
486
- if (iter == ty->cast) return iter; \
487
- /* Move iter to the top of the linked list */ \
488
- iter->prev->next = iter->next; \
489
- if (iter->next) \
490
- iter->next->prev = iter->prev; \
491
- iter->next = ty->cast; \
492
- iter->prev = 0; \
493
- if (ty->cast) ty->cast->prev = iter; \
494
- ty->cast = iter; \
495
- return iter; \
496
- } \
497
- iter = iter->next; \
498
- } \
499
- } \
500
- return 0
501
-
502
502
  /*
503
503
  Check the typename
504
504
  */
505
505
  SWIGRUNTIME swig_cast_info *
506
506
  SWIG_TypeCheck(const char *c, swig_type_info *ty) {
507
- SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
507
+ if (ty) {
508
+ swig_cast_info *iter = ty->cast;
509
+ while (iter) {
510
+ if (strcmp(iter->type->name, c) == 0) {
511
+ if (iter == ty->cast)
512
+ return iter;
513
+ /* Move iter to the top of the linked list */
514
+ iter->prev->next = iter->next;
515
+ if (iter->next)
516
+ iter->next->prev = iter->prev;
517
+ iter->next = ty->cast;
518
+ iter->prev = 0;
519
+ if (ty->cast) ty->cast->prev = iter;
520
+ ty->cast = iter;
521
+ return iter;
522
+ }
523
+ iter = iter->next;
524
+ }
525
+ }
526
+ return 0;
508
527
  }
509
528
 
510
- /* Same as previous function, except strcmp is replaced with a pointer comparison */
529
+ /*
530
+ Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
531
+ */
511
532
  SWIGRUNTIME swig_cast_info *
512
- SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
513
- SWIG_TypeCheck_Template(iter->type == from, into);
533
+ SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
534
+ if (ty) {
535
+ swig_cast_info *iter = ty->cast;
536
+ while (iter) {
537
+ if (iter->type == from) {
538
+ if (iter == ty->cast)
539
+ return iter;
540
+ /* Move iter to the top of the linked list */
541
+ iter->prev->next = iter->next;
542
+ if (iter->next)
543
+ iter->next->prev = iter->prev;
544
+ iter->next = ty->cast;
545
+ iter->prev = 0;
546
+ if (ty->cast) ty->cast->prev = iter;
547
+ ty->cast = iter;
548
+ return iter;
549
+ }
550
+ iter = iter->next;
551
+ }
552
+ }
553
+ return 0;
514
554
  }
515
555
 
516
556
  /*
517
557
  Cast a pointer up an inheritance hierarchy
518
558
  */
519
559
  SWIGRUNTIMEINLINE void *
520
- SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
521
- return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
560
+ SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
561
+ return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
522
562
  }
523
563
 
524
564
  /*
@@ -791,6 +831,15 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
791
831
 
792
832
  #include <ruby.h>
793
833
 
834
+ /* Remove global macros defined in Ruby's win32.h */
835
+ #ifdef write
836
+ # undef write
837
+ #endif
838
+ #ifdef read
839
+ # undef read
840
+ #endif
841
+
842
+
794
843
  /* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */
795
844
  #ifndef NUM2LL
796
845
  #define NUM2LL(x) NUM2LONG((x))
@@ -811,6 +860,53 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
811
860
  #endif
812
861
  #endif
813
862
 
863
+ /* RSTRING_LEN, etc are new in Ruby 1.9, but ->ptr and ->len no longer work */
864
+ /* Define these for older versions so we can just write code the new way */
865
+ #ifndef RSTRING_LEN
866
+ # define RSTRING_LEN(x) RSTRING(x)->len
867
+ #endif
868
+ #ifndef RSTRING_PTR
869
+ # define RSTRING_PTR(x) RSTRING(x)->ptr
870
+ #endif
871
+ #ifndef RSTRING_END
872
+ # define RSTRING_END(x) (RSTRING_PTR(x) + RSTRING_LEN(x))
873
+ #endif
874
+ #ifndef RARRAY_LEN
875
+ # define RARRAY_LEN(x) RARRAY(x)->len
876
+ #endif
877
+ #ifndef RARRAY_PTR
878
+ # define RARRAY_PTR(x) RARRAY(x)->ptr
879
+ #endif
880
+ #ifndef RFLOAT_VALUE
881
+ # define RFLOAT_VALUE(x) RFLOAT(x)->value
882
+ #endif
883
+ #ifndef DOUBLE2NUM
884
+ # define DOUBLE2NUM(x) rb_float_new(x)
885
+ #endif
886
+ #ifndef RHASH_TBL
887
+ # define RHASH_TBL(x) (RHASH(x)->tbl)
888
+ #endif
889
+ #ifndef RHASH_ITER_LEV
890
+ # define RHASH_ITER_LEV(x) (RHASH(x)->iter_lev)
891
+ #endif
892
+ #ifndef RHASH_IFNONE
893
+ # define RHASH_IFNONE(x) (RHASH(x)->ifnone)
894
+ #endif
895
+ #ifndef RHASH_SIZE
896
+ # define RHASH_SIZE(x) (RHASH(x)->tbl->num_entries)
897
+ #endif
898
+ #ifndef RHASH_EMPTY_P
899
+ # define RHASH_EMPTY_P(x) (RHASH_SIZE(x) == 0)
900
+ #endif
901
+ #ifndef RSTRUCT_LEN
902
+ # define RSTRUCT_LEN(x) RSTRUCT(x)->len
903
+ #endif
904
+ #ifndef RSTRUCT_PTR
905
+ # define RSTRUCT_PTR(x) RSTRUCT(x)->ptr
906
+ #endif
907
+
908
+
909
+
814
910
  /*
815
911
  * Need to be very careful about how these macros are defined, especially
816
912
  * when compiling C++ code or C code with an ANSI C compiler.
@@ -854,10 +950,10 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
854
950
  #define StringValue(s) RB_STRING_VALUE(s)
855
951
  #endif
856
952
  #ifndef StringValuePtr
857
- #define StringValuePtr(s) RSTRING(RB_STRING_VALUE(s))->ptr
953
+ #define StringValuePtr(s) RSTRING_PTR(RB_STRING_VALUE(s))
858
954
  #endif
859
955
  #ifndef StringValueLen
860
- #define StringValueLen(s) RSTRING(RB_STRING_VALUE(s))->len
956
+ #define StringValueLen(s) RSTRING_LEN(RB_STRING_VALUE(s))
861
957
  #endif
862
958
  #ifndef SafeStringValue
863
959
  #define SafeStringValue(v) do {\
@@ -871,6 +967,7 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
871
967
  #define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new")
872
968
  #endif
873
969
 
970
+ static VALUE _mSWIG = Qnil;
874
971
 
875
972
  /* -----------------------------------------------------------------------------
876
973
  * error manipulation
@@ -961,7 +1058,71 @@ SWIG_Ruby_ErrorType(int SWIG_code) {
961
1058
  }
962
1059
 
963
1060
 
1061
+ /* This function is called when a user inputs a wrong argument to
1062
+ a method.
1063
+ */
1064
+ SWIGINTERN
1065
+ const char* Ruby_Format_TypeError( const char* msg,
1066
+ const char* type,
1067
+ const char* name,
1068
+ const int argn,
1069
+ VALUE input )
1070
+ {
1071
+ char buf[128];
1072
+ VALUE str;
1073
+ VALUE asStr;
1074
+ if ( msg && *msg )
1075
+ {
1076
+ str = rb_str_new2(msg);
1077
+ }
1078
+ else
1079
+ {
1080
+ str = rb_str_new(NULL, 0);
1081
+ }
964
1082
 
1083
+ str = rb_str_cat2( str, "Expected argument " );
1084
+ sprintf( buf, "%d of type ", argn-1 );
1085
+ str = rb_str_cat2( str, buf );
1086
+ str = rb_str_cat2( str, type );
1087
+ str = rb_str_cat2( str, ", but got " );
1088
+ str = rb_str_cat2( str, rb_obj_classname(input) );
1089
+ str = rb_str_cat2( str, " " );
1090
+ asStr = rb_inspect(input);
1091
+ if ( RSTRING_LEN(asStr) > 30 )
1092
+ {
1093
+ str = rb_str_cat( str, StringValuePtr(asStr), 30 );
1094
+ str = rb_str_cat2( str, "..." );
1095
+ }
1096
+ else
1097
+ {
1098
+ str = rb_str_append( str, asStr );
1099
+ }
1100
+
1101
+ if ( name )
1102
+ {
1103
+ str = rb_str_cat2( str, "\n\tin SWIG method '" );
1104
+ str = rb_str_cat2( str, name );
1105
+ str = rb_str_cat2( str, "'" );
1106
+ }
1107
+
1108
+ return StringValuePtr( str );
1109
+ }
1110
+
1111
+ /* This function is called when an overloaded method fails */
1112
+ SWIGINTERN
1113
+ void Ruby_Format_OverloadedError(
1114
+ const int argc,
1115
+ const int maxargs,
1116
+ const char* method,
1117
+ const char* prototypes
1118
+ )
1119
+ {
1120
+ const char* msg = "Wrong # of arguments";
1121
+ if ( argc <= maxargs ) msg = "Wrong arguments";
1122
+ rb_raise(rb_eArgError,"%s for overloaded method '%s'.\n"
1123
+ "Possible C/C++ prototypes are:\n%s",
1124
+ msg, method, prototypes);
1125
+ }
965
1126
 
966
1127
  /* -----------------------------------------------------------------------------
967
1128
  * See the LICENSE file for information on copyright, usage and redistribution
@@ -979,26 +1140,54 @@ SWIG_Ruby_ErrorType(int SWIG_code) {
979
1140
  extern "C" {
980
1141
  #endif
981
1142
 
1143
+ /* Ruby 1.8 actually assumes the first case. */
1144
+ #if SIZEOF_VOIDP == SIZEOF_LONG
1145
+ # define SWIG2NUM(v) LONG2NUM((unsigned long)v)
1146
+ # define NUM2SWIG(x) (unsigned long)NUM2LONG(x)
1147
+ #elif SIZEOF_VOIDP == SIZEOF_LONG_LONG
1148
+ # define SWIG2NUM(v) LL2NUM((unsigned long long)v)
1149
+ # define NUM2SWIG(x) (unsigned long long)NUM2LL(x)
1150
+ #else
1151
+ # error sizeof(void*) is not the same as long or long long
1152
+ #endif
1153
+
982
1154
 
983
1155
  /* Global Ruby hash table to store Trackings from C/C++
984
- structs to Ruby Objects. */
985
- static VALUE swig_ruby_trackings;
986
-
987
- /* Global variable that stores a reference to the ruby
988
- hash table delete function. */
989
- static ID swig_ruby_hash_delete = 0;
1156
+ structs to Ruby Objects.
1157
+ */
1158
+ static VALUE swig_ruby_trackings = Qnil;
1159
+
1160
+ /* Global variable that stores a reference to the ruby
1161
+ hash table delete function. */
1162
+ static ID swig_ruby_hash_delete;
990
1163
 
991
1164
  /* Setup a Ruby hash table to store Trackings */
992
1165
  SWIGRUNTIME void SWIG_RubyInitializeTrackings(void) {
993
1166
  /* Create a ruby hash table to store Trackings from C++
994
- objects to Ruby objects. Also make sure to tell
995
- the garabage collector about the hash table. */
996
- swig_ruby_trackings = rb_hash_new();
997
- rb_gc_register_address(&swig_ruby_trackings);
998
-
999
- /* Now store a reference to the hash table delete function
1000
- so that we only have to look it up once.*/
1001
- swig_ruby_hash_delete = rb_intern("delete");
1167
+ objects to Ruby objects. */
1168
+
1169
+ /* Try to see if some other .so has already created a
1170
+ tracking hash table, which we keep hidden in an instance var
1171
+ in the SWIG module.
1172
+ This is done to allow multiple DSOs to share the same
1173
+ tracking table.
1174
+ */
1175
+ ID trackings_id = rb_intern( "@__trackings__" );
1176
+ VALUE verbose = rb_gv_get("VERBOSE");
1177
+ rb_gv_set("VERBOSE", Qfalse);
1178
+ swig_ruby_trackings = rb_ivar_get( _mSWIG, trackings_id );
1179
+ rb_gv_set("VERBOSE", verbose);
1180
+
1181
+ /* No, it hasn't. Create one ourselves */
1182
+ if ( swig_ruby_trackings == Qnil )
1183
+ {
1184
+ swig_ruby_trackings = rb_hash_new();
1185
+ rb_ivar_set( _mSWIG, trackings_id, swig_ruby_trackings );
1186
+ }
1187
+
1188
+ /* Now store a reference to the hash table delete function
1189
+ so that we only have to look it up once.*/
1190
+ swig_ruby_hash_delete = rb_intern("delete");
1002
1191
  }
1003
1192
 
1004
1193
  /* Get a Ruby number to reference a pointer */
@@ -1008,8 +1197,7 @@ SWIGRUNTIME VALUE SWIG_RubyPtrToReference(void* ptr) {
1008
1197
  a Ruby number object. */
1009
1198
 
1010
1199
  /* Convert the pointer to a Ruby number */
1011
- unsigned long value = (unsigned long) ptr;
1012
- return LONG2NUM(value);
1200
+ return SWIG2NUM(ptr);
1013
1201
  }
1014
1202
 
1015
1203
  /* Get a Ruby number to reference an object */
@@ -1019,8 +1207,7 @@ SWIGRUNTIME VALUE SWIG_RubyObjectToReference(VALUE object) {
1019
1207
  a Ruby number object. */
1020
1208
 
1021
1209
  /* Convert the Object to a Ruby number */
1022
- unsigned long value = (unsigned long) object;
1023
- return LONG2NUM(value);
1210
+ return SWIG2NUM(object);
1024
1211
  }
1025
1212
 
1026
1213
  /* Get a Ruby object from a previously stored reference */
@@ -1028,9 +1215,8 @@ SWIGRUNTIME VALUE SWIG_RubyReferenceToObject(VALUE reference) {
1028
1215
  /* The provided Ruby number object is a reference
1029
1216
  to the Ruby object we want.*/
1030
1217
 
1031
- /* First convert the Ruby number to a C number */
1032
- unsigned long value = NUM2LONG(reference);
1033
- return (VALUE) value;
1218
+ /* Convert the Ruby number to a Ruby object */
1219
+ return NUM2SWIG(reference);
1034
1220
  }
1035
1221
 
1036
1222
  /* Add a Tracking from a C/C++ struct to a Ruby object */
@@ -1122,6 +1308,15 @@ SWIG_Ruby_AppendOutput(VALUE target, VALUE o) {
1122
1308
  return target;
1123
1309
  }
1124
1310
 
1311
+ /* For ruby1.8.4 and earlier. */
1312
+ #ifndef RUBY_INIT_STACK
1313
+ RUBY_EXTERN void Init_stack(VALUE* addr);
1314
+ # define RUBY_INIT_STACK \
1315
+ VALUE variable_in_this_stack_frame; \
1316
+ Init_stack(&variable_in_this_stack_frame);
1317
+ #endif
1318
+
1319
+
1125
1320
  #ifdef __cplusplus
1126
1321
  }
1127
1322
  #endif
@@ -1186,6 +1381,7 @@ SWIG_Ruby_AppendOutput(VALUE target, VALUE o) {
1186
1381
  #define SWIG_MangleStr(value) SWIG_Ruby_MangleStr(value)
1187
1382
  #define SWIG_CheckConvert(value, ty) SWIG_Ruby_CheckConvert(value, ty)
1188
1383
 
1384
+ #include "assert.h"
1189
1385
 
1190
1386
  /* -----------------------------------------------------------------------------
1191
1387
  * pointers/data manipulation
@@ -1193,9 +1389,6 @@ SWIG_Ruby_AppendOutput(VALUE target, VALUE o) {
1193
1389
 
1194
1390
  #ifdef __cplusplus
1195
1391
  extern "C" {
1196
- #if 0
1197
- } /* cc-mode */
1198
- #endif
1199
1392
  #endif
1200
1393
 
1201
1394
  typedef struct {
@@ -1207,10 +1400,44 @@ typedef struct {
1207
1400
  } swig_class;
1208
1401
 
1209
1402
 
1210
- static VALUE _mSWIG = Qnil;
1403
+ /* Global pointer used to keep some internal SWIG stuff */
1211
1404
  static VALUE _cSWIG_Pointer = Qnil;
1212
1405
  static VALUE swig_runtime_data_type_pointer = Qnil;
1213
1406
 
1407
+ /* Global IDs used to keep some internal SWIG stuff */
1408
+ static ID swig_arity_id = 0;
1409
+ static ID swig_call_id = 0;
1410
+
1411
+ /*
1412
+ If your swig extension is to be run within an embedded ruby and has
1413
+ director callbacks, you should set -DRUBY_EMBEDDED during compilation.
1414
+ This will reset ruby's stack frame on each entry point from the main
1415
+ program the first time a virtual director function is invoked (in a
1416
+ non-recursive way).
1417
+ If this is not done, you run the risk of Ruby trashing the stack.
1418
+ */
1419
+
1420
+ #ifdef RUBY_EMBEDDED
1421
+
1422
+ # define SWIG_INIT_STACK \
1423
+ if ( !swig_virtual_calls ) { RUBY_INIT_STACK } \
1424
+ ++swig_virtual_calls;
1425
+ # define SWIG_RELEASE_STACK --swig_virtual_calls;
1426
+ # define Ruby_DirectorTypeMismatchException(x) \
1427
+ rb_raise( rb_eTypeError, x ); return c_result;
1428
+
1429
+ static unsigned int swig_virtual_calls = 0;
1430
+
1431
+ #else /* normal non-embedded extension */
1432
+
1433
+ # define SWIG_INIT_STACK
1434
+ # define SWIG_RELEASE_STACK
1435
+ # define Ruby_DirectorTypeMismatchException(x) \
1436
+ throw Swig::DirectorTypeMismatchException( x );
1437
+
1438
+ #endif /* RUBY_EMBEDDED */
1439
+
1440
+
1214
1441
  SWIGRUNTIME VALUE
1215
1442
  getExceptionClass(void) {
1216
1443
  static int init = 0;
@@ -1242,6 +1469,8 @@ SWIG_Ruby_InitRuntime(void)
1242
1469
  {
1243
1470
  if (_mSWIG == Qnil) {
1244
1471
  _mSWIG = rb_define_module("SWIG");
1472
+ swig_call_id = rb_intern("call");
1473
+ swig_arity_id = rb_intern("arity");
1245
1474
  }
1246
1475
  }
1247
1476
 
@@ -1265,7 +1494,7 @@ SWIGRUNTIME VALUE
1265
1494
  SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1266
1495
  {
1267
1496
  int own = flags & SWIG_POINTER_OWN;
1268
-
1497
+ int track;
1269
1498
  char *klass_name;
1270
1499
  swig_class *sklass;
1271
1500
  VALUE klass;
@@ -1278,15 +1507,16 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1278
1507
  sklass = (swig_class *) type->clientdata;
1279
1508
 
1280
1509
  /* Are we tracking this class and have we already returned this Ruby object? */
1281
- if (sklass->trackObjects) {
1510
+ track = sklass->trackObjects;
1511
+ if (track) {
1282
1512
  obj = SWIG_RubyInstanceFor(ptr);
1283
1513
 
1284
1514
  /* Check the object's type and make sure it has the correct type.
1285
1515
  It might not in cases where methods do things like
1286
1516
  downcast methods. */
1287
1517
  if (obj != Qnil) {
1288
- VALUE value = rb_iv_get(obj, "__swigtype__");
1289
- char* type_name = RSTRING(value)->ptr;
1518
+ VALUE value = rb_iv_get(obj, "@__swigtype__");
1519
+ char* type_name = RSTRING_PTR(value);
1290
1520
 
1291
1521
  if (strcmp(type->name, type_name) == 0) {
1292
1522
  return obj;
@@ -1295,10 +1525,13 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1295
1525
  }
1296
1526
 
1297
1527
  /* Create a new Ruby object */
1298
- obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark), (own ? VOIDFUNC(sklass->destroy) : 0), ptr);
1528
+ obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark),
1529
+ ( own ? VOIDFUNC(sklass->destroy) :
1530
+ (track ? VOIDFUNC(SWIG_RubyRemoveTracking) : 0 )
1531
+ ), ptr);
1299
1532
 
1300
1533
  /* If tracking is on for this class then track this object. */
1301
- if (sklass->trackObjects) {
1534
+ if (track) {
1302
1535
  SWIG_RubyAddTracking(ptr, obj);
1303
1536
  }
1304
1537
  } else {
@@ -1308,7 +1541,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
1308
1541
  free((void *) klass_name);
1309
1542
  obj = Data_Wrap_Struct(klass, 0, 0, ptr);
1310
1543
  }
1311
- rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name));
1544
+ rb_iv_set(obj, "@__swigtype__", rb_str_new2(type->name));
1312
1545
 
1313
1546
  return obj;
1314
1547
  }
@@ -1320,7 +1553,7 @@ SWIG_Ruby_NewClassInstance(VALUE klass, swig_type_info *type)
1320
1553
  VALUE obj;
1321
1554
  swig_class *sklass = (swig_class *) type->clientdata;
1322
1555
  obj = Data_Wrap_Struct(klass, VOIDFUNC(sklass->mark), VOIDFUNC(sklass->destroy), 0);
1323
- rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name));
1556
+ rb_iv_set(obj, "@__swigtype__", rb_str_new2(type->name));
1324
1557
  return obj;
1325
1558
  }
1326
1559
 
@@ -1328,7 +1561,7 @@ SWIG_Ruby_NewClassInstance(VALUE klass, swig_type_info *type)
1328
1561
  SWIGRUNTIMEINLINE char *
1329
1562
  SWIG_Ruby_MangleStr(VALUE obj)
1330
1563
  {
1331
- VALUE stype = rb_iv_get(obj, "__swigtype__");
1564
+ VALUE stype = rb_iv_get(obj, "@__swigtype__");
1332
1565
  return StringValuePtr(stype);
1333
1566
  }
1334
1567
 
@@ -1410,8 +1643,11 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
1410
1643
  tc = SWIG_TypeCheck(c, ty);
1411
1644
  if (!tc) {
1412
1645
  return SWIG_ERROR;
1646
+ } else {
1647
+ int newmemory = 0;
1648
+ *ptr = SWIG_TypeCast(tc, vptr, &newmemory);
1649
+ assert(!newmemory); /* newmemory handling not yet implemented */
1413
1650
  }
1414
- *ptr = SWIG_TypeCast(tc, vptr);
1415
1651
  } else {
1416
1652
  *ptr = vptr;
1417
1653
  }
@@ -1492,10 +1728,42 @@ SWIG_Ruby_SetModule(swig_module_info *pointer)
1492
1728
  rb_define_readonly_variable("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, &swig_runtime_data_type_pointer);
1493
1729
  }
1494
1730
 
1731
+ /* This function can be used to check whether a proc or method or similarly
1732
+ callable function has been passed. Usually used in a %typecheck, like:
1733
+
1734
+ %typecheck(c_callback_t, precedence=SWIG_TYPECHECK_POINTER) {
1735
+ $result = SWIG_Ruby_isCallable( $input );
1736
+ }
1737
+ */
1738
+ SWIGINTERN
1739
+ int SWIG_Ruby_isCallable( VALUE proc )
1740
+ {
1741
+ if ( rb_respond_to( proc, swig_call_id ) == Qtrue )
1742
+ return 1;
1743
+ return 0;
1744
+ }
1745
+
1746
+ /* This function can be used to check the arity (number of arguments)
1747
+ a proc or method can take. Usually used in a %typecheck.
1748
+ Valid arities will be that equal to minimal or those < 0
1749
+ which indicate a variable number of parameters at the end.
1750
+ */
1751
+ SWIGINTERN
1752
+ int SWIG_Ruby_arity( VALUE proc, int minimal )
1753
+ {
1754
+ if ( rb_respond_to( proc, swig_arity_id ) == Qtrue )
1755
+ {
1756
+ VALUE num = rb_funcall( proc, swig_arity_id, 0 );
1757
+ int arity = NUM2INT(num);
1758
+ if ( arity < 0 && (arity+1) < -minimal ) return 1;
1759
+ if ( arity == minimal ) return 1;
1760
+ return 1;
1761
+ }
1762
+ return 0;
1763
+ }
1764
+
1765
+
1495
1766
  #ifdef __cplusplus
1496
- #if 0
1497
- { /* cc-mode */
1498
- #endif
1499
1767
  }
1500
1768
  #endif
1501
1769
 
@@ -1512,9 +1780,8 @@ SWIG_Ruby_SetModule(swig_module_info *pointer)
1512
1780
  #define SWIGTYPE_p_IntegerArray swig_types[0]
1513
1781
  #define SWIGTYPE_p_char swig_types[1]
1514
1782
  #define SWIGTYPE_p_int swig_types[2]
1515
- #define SWIGTYPE_p_unsigned_int swig_types[3]
1516
- static swig_type_info *swig_types[5];
1517
- static swig_module_info swig_module = {swig_types, 4, 0, 0, 0, 0};
1783
+ static swig_type_info *swig_types[4];
1784
+ static swig_module_info swig_module = {swig_types, 3, 0, 0, 0, 0};
1518
1785
  #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1519
1786
  #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1520
1787
 
@@ -1525,14 +1792,18 @@ static swig_module_info swig_module = {swig_types, 4, 0, 0, 0, 0};
1525
1792
 
1526
1793
  static VALUE mRelax4;
1527
1794
 
1528
- #define SWIGVERSION 0x010329
1795
+ #define SWIG_RUBY_THREAD_BEGIN_BLOCK
1796
+ #define SWIG_RUBY_THREAD_END_BLOCK
1797
+
1798
+
1799
+ #define SWIGVERSION 0x010338
1800
+ #define SWIG_VERSION SWIGVERSION
1529
1801
 
1530
1802
 
1531
1803
  #define SWIG_as_voidptr(a) (void *)((const void *)(a))
1532
1804
  #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a))
1533
1805
 
1534
1806
 
1535
- #include "relax4_f2c.h"
1536
1807
  #include "relax4.h"
1537
1808
 
1538
1809
 
@@ -1546,7 +1817,7 @@ SWIG_ruby_failed(void)
1546
1817
  }
1547
1818
 
1548
1819
 
1549
- /*@SWIG:%ruby_aux_method@*/
1820
+ /*@SWIG:/usr/local/share/swig/1.3.38/ruby/rubyprimtypes.swg,23,%ruby_aux_method@*/
1550
1821
  SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
1551
1822
  {
1552
1823
  VALUE obj = args[0];
@@ -1592,14 +1863,12 @@ SWIGINTERN int IntegerArray___getitem__(IntegerArray *self,size_t index){
1592
1863
  }
1593
1864
 
1594
1865
  #include <limits.h>
1595
- #ifndef LLONG_MIN
1596
- # define LLONG_MIN LONG_LONG_MIN
1597
- #endif
1598
- #ifndef LLONG_MAX
1599
- # define LLONG_MAX LONG_LONG_MAX
1600
- #endif
1601
- #ifndef ULLONG_MAX
1602
- # define ULLONG_MAX ULONG_LONG_MAX
1866
+ #if !defined(SWIG_NO_LLONG_MAX)
1867
+ # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1868
+ # define LLONG_MAX __LONG_LONG_MAX__
1869
+ # define LLONG_MIN (-LLONG_MAX - 1LL)
1870
+ # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
1871
+ # endif
1603
1872
  #endif
1604
1873
 
1605
1874
 
@@ -1613,7 +1882,7 @@ SWIG_From_int (int value)
1613
1882
  }
1614
1883
 
1615
1884
 
1616
- /*@SWIG:%ruby_aux_method@*/
1885
+ /*@SWIG:/usr/local/share/swig/1.3.38/ruby/rubyprimtypes.swg,23,%ruby_aux_method@*/
1617
1886
  SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
1618
1887
  {
1619
1888
  VALUE obj = args[0];
@@ -1688,20 +1957,20 @@ _wrap_IntegerArray_allocate(VALUE self) {
1688
1957
  SWIGINTERN VALUE
1689
1958
  _wrap_new_IntegerArray(int argc, VALUE *argv, VALUE self) {
1690
1959
  size_t arg1 ;
1691
- IntegerArray *result = 0 ;
1692
1960
  size_t val1 ;
1693
1961
  int ecode1 = 0 ;
1962
+ IntegerArray *result = 0 ;
1694
1963
 
1695
1964
  if ((argc < 1) || (argc > 1)) {
1696
1965
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
1697
1966
  }
1698
1967
  ecode1 = SWIG_AsVal_size_t(argv[0], &val1);
1699
1968
  if (!SWIG_IsOK(ecode1)) {
1700
- SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "IntegerArray" "', argument " "1"" of type '" "size_t""'");
1969
+ SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "size_t","IntegerArray", 1, argv[0] ));
1701
1970
  }
1702
1971
  arg1 = (size_t)(val1);
1703
- result = (IntegerArray *)new_IntegerArray(arg1);DATA_PTR(self) = result;
1704
-
1972
+ result = (IntegerArray *)new_IntegerArray(arg1);
1973
+ DATA_PTR(self) = result;
1705
1974
  return self;
1706
1975
  fail:
1707
1976
  return Qnil;
@@ -1716,15 +1985,24 @@ free_IntegerArray(IntegerArray *arg1) {
1716
1985
  delete_IntegerArray(arg1);
1717
1986
  }
1718
1987
 
1988
+
1989
+ /*
1990
+ Document-method: Relax4::IntegerArray.[]
1991
+
1992
+ call-seq:
1993
+ [](index) -> int
1994
+
1995
+ Element accessor/slicing.
1996
+ */
1719
1997
  SWIGINTERN VALUE
1720
1998
  _wrap_IntegerArray___getitem__(int argc, VALUE *argv, VALUE self) {
1721
1999
  IntegerArray *arg1 = (IntegerArray *) 0 ;
1722
2000
  size_t arg2 ;
1723
- int result;
1724
2001
  void *argp1 = 0 ;
1725
2002
  int res1 = 0 ;
1726
2003
  size_t val2 ;
1727
2004
  int ecode2 = 0 ;
2005
+ int result;
1728
2006
  VALUE vresult = Qnil;
1729
2007
 
1730
2008
  if ((argc < 1) || (argc > 1)) {
@@ -1732,12 +2010,12 @@ _wrap_IntegerArray___getitem__(int argc, VALUE *argv, VALUE self) {
1732
2010
  }
1733
2011
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_IntegerArray, 0 | 0 );
1734
2012
  if (!SWIG_IsOK(res1)) {
1735
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "__getitem__" "', argument " "1"" of type '" "IntegerArray *""'");
2013
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "IntegerArray *","__getitem__", 1, self ));
1736
2014
  }
1737
2015
  arg1 = (IntegerArray *)(argp1);
1738
2016
  ecode2 = SWIG_AsVal_size_t(argv[0], &val2);
1739
2017
  if (!SWIG_IsOK(ecode2)) {
1740
- SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "__getitem__" "', argument " "2"" of type '" "size_t""'");
2018
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "size_t","__getitem__", 2, argv[0] ));
1741
2019
  }
1742
2020
  arg2 = (size_t)(val2);
1743
2021
  result = (int)IntegerArray___getitem__(arg1,arg2);
@@ -1748,6 +2026,15 @@ fail:
1748
2026
  }
1749
2027
 
1750
2028
 
2029
+
2030
+ /*
2031
+ Document-method: Relax4::IntegerArray.[]=
2032
+
2033
+ call-seq:
2034
+ []=(index, value)
2035
+
2036
+ Element setter/slicing.
2037
+ */
1751
2038
  SWIGINTERN VALUE
1752
2039
  _wrap_IntegerArray___setitem__(int argc, VALUE *argv, VALUE self) {
1753
2040
  IntegerArray *arg1 = (IntegerArray *) 0 ;
@@ -1765,17 +2052,17 @@ _wrap_IntegerArray___setitem__(int argc, VALUE *argv, VALUE self) {
1765
2052
  }
1766
2053
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_IntegerArray, 0 | 0 );
1767
2054
  if (!SWIG_IsOK(res1)) {
1768
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "__setitem__" "', argument " "1"" of type '" "IntegerArray *""'");
2055
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "IntegerArray *","__setitem__", 1, self ));
1769
2056
  }
1770
2057
  arg1 = (IntegerArray *)(argp1);
1771
2058
  ecode2 = SWIG_AsVal_size_t(argv[0], &val2);
1772
2059
  if (!SWIG_IsOK(ecode2)) {
1773
- SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "__setitem__" "', argument " "2"" of type '" "size_t""'");
2060
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "size_t","__setitem__", 2, argv[0] ));
1774
2061
  }
1775
2062
  arg2 = (size_t)(val2);
1776
2063
  ecode3 = SWIG_AsVal_int(argv[1], &val3);
1777
2064
  if (!SWIG_IsOK(ecode3)) {
1778
- SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "__setitem__" "', argument " "3"" of type '" "int""'");
2065
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","__setitem__", 3, argv[1] ));
1779
2066
  }
1780
2067
  arg3 = (int)(val3);
1781
2068
  IntegerArray___setitem__(arg1,arg2,arg3);
@@ -1788,9 +2075,9 @@ fail:
1788
2075
  SWIGINTERN VALUE
1789
2076
  _wrap_IntegerArray_cast(int argc, VALUE *argv, VALUE self) {
1790
2077
  IntegerArray *arg1 = (IntegerArray *) 0 ;
1791
- int *result = 0 ;
1792
2078
  void *argp1 = 0 ;
1793
2079
  int res1 = 0 ;
2080
+ int *result = 0 ;
1794
2081
  VALUE vresult = Qnil;
1795
2082
 
1796
2083
  if ((argc < 0) || (argc > 0)) {
@@ -1798,7 +2085,7 @@ _wrap_IntegerArray_cast(int argc, VALUE *argv, VALUE self) {
1798
2085
  }
1799
2086
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_IntegerArray, 0 | 0 );
1800
2087
  if (!SWIG_IsOK(res1)) {
1801
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cast" "', argument " "1"" of type '" "IntegerArray *""'");
2088
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "IntegerArray *","cast", 1, self ));
1802
2089
  }
1803
2090
  arg1 = (IntegerArray *)(argp1);
1804
2091
  result = (int *)IntegerArray_cast(arg1);
@@ -1812,9 +2099,9 @@ fail:
1812
2099
  SWIGINTERN VALUE
1813
2100
  _wrap_IntegerArray_frompointer(int argc, VALUE *argv, VALUE self) {
1814
2101
  int *arg1 = (int *) 0 ;
1815
- IntegerArray *result = 0 ;
1816
2102
  void *argp1 = 0 ;
1817
2103
  int res1 = 0 ;
2104
+ IntegerArray *result = 0 ;
1818
2105
  VALUE vresult = Qnil;
1819
2106
 
1820
2107
  if ((argc < 1) || (argc > 1)) {
@@ -1822,7 +2109,7 @@ _wrap_IntegerArray_frompointer(int argc, VALUE *argv, VALUE self) {
1822
2109
  }
1823
2110
  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_int, 0 | 0 );
1824
2111
  if (!SWIG_IsOK(res1)) {
1825
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IntegerArray_frompointer" "', argument " "1"" of type '" "int *""'");
2112
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "int *","IntegerArray_frompointer", 1, argv[0] ));
1826
2113
  }
1827
2114
  arg1 = (int *)(argp1);
1828
2115
  result = (IntegerArray *)IntegerArray_frompointer(arg1);
@@ -1835,16 +2122,15 @@ fail:
1835
2122
 
1836
2123
  SWIGINTERN VALUE
1837
2124
  _wrap_relax4_init(int argc, VALUE *argv, VALUE self) {
1838
- integer arg1 ;
1839
- integer arg2 ;
1840
- integer *arg3 ;
1841
- integer *arg4 ;
1842
- integer *arg5 ;
1843
- integer *arg6 ;
1844
- integer *arg7 ;
1845
- integer *arg8 ;
1846
- integer arg9 ;
1847
- int result;
2125
+ int arg1 ;
2126
+ int arg2 ;
2127
+ int *arg3 ;
2128
+ int *arg4 ;
2129
+ int *arg5 ;
2130
+ int *arg6 ;
2131
+ int *arg7 ;
2132
+ int *arg8 ;
2133
+ int arg9 ;
1848
2134
  int val1 ;
1849
2135
  int ecode1 = 0 ;
1850
2136
  int val2 ;
@@ -1863,6 +2149,7 @@ _wrap_relax4_init(int argc, VALUE *argv, VALUE self) {
1863
2149
  int res8 = 0 ;
1864
2150
  int val9 ;
1865
2151
  int ecode9 = 0 ;
2152
+ int result;
1866
2153
  VALUE vresult = Qnil;
1867
2154
 
1868
2155
  if ((argc < 9) || (argc > 9)) {
@@ -1870,49 +2157,49 @@ _wrap_relax4_init(int argc, VALUE *argv, VALUE self) {
1870
2157
  }
1871
2158
  ecode1 = SWIG_AsVal_int(argv[0], &val1);
1872
2159
  if (!SWIG_IsOK(ecode1)) {
1873
- SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "relax4_init" "', argument " "1"" of type '" "integer""'");
2160
+ SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","relax4_init", 1, argv[0] ));
1874
2161
  }
1875
- arg1 = (integer)(val1);
2162
+ arg1 = (int)(val1);
1876
2163
  ecode2 = SWIG_AsVal_int(argv[1], &val2);
1877
2164
  if (!SWIG_IsOK(ecode2)) {
1878
- SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "relax4_init" "', argument " "2"" of type '" "integer""'");
2165
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","relax4_init", 2, argv[1] ));
1879
2166
  }
1880
- arg2 = (integer)(val2);
2167
+ arg2 = (int)(val2);
1881
2168
  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_int, 0 | 0 );
1882
2169
  if (!SWIG_IsOK(res3)) {
1883
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "relax4_init" "', argument " "3"" of type '" "integer []""'");
2170
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "int []","relax4_init", 3, argv[2] ));
1884
2171
  }
1885
- arg3 = (integer *)(argp3);
2172
+ arg3 = (int *)(argp3);
1886
2173
  res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_int, 0 | 0 );
1887
2174
  if (!SWIG_IsOK(res4)) {
1888
- SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "relax4_init" "', argument " "4"" of type '" "integer []""'");
2175
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "int []","relax4_init", 4, argv[3] ));
1889
2176
  }
1890
- arg4 = (integer *)(argp4);
2177
+ arg4 = (int *)(argp4);
1891
2178
  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_int, 0 | 0 );
1892
2179
  if (!SWIG_IsOK(res5)) {
1893
- SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "relax4_init" "', argument " "5"" of type '" "integer []""'");
2180
+ SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "int []","relax4_init", 5, argv[4] ));
1894
2181
  }
1895
- arg5 = (integer *)(argp5);
2182
+ arg5 = (int *)(argp5);
1896
2183
  res6 = SWIG_ConvertPtr(argv[5], &argp6,SWIGTYPE_p_int, 0 | 0 );
1897
2184
  if (!SWIG_IsOK(res6)) {
1898
- SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "relax4_init" "', argument " "6"" of type '" "integer []""'");
2185
+ SWIG_exception_fail(SWIG_ArgError(res6), Ruby_Format_TypeError( "", "int []","relax4_init", 6, argv[5] ));
1899
2186
  }
1900
- arg6 = (integer *)(argp6);
2187
+ arg6 = (int *)(argp6);
1901
2188
  res7 = SWIG_ConvertPtr(argv[6], &argp7,SWIGTYPE_p_int, 0 | 0 );
1902
2189
  if (!SWIG_IsOK(res7)) {
1903
- SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "relax4_init" "', argument " "7"" of type '" "integer []""'");
2190
+ SWIG_exception_fail(SWIG_ArgError(res7), Ruby_Format_TypeError( "", "int []","relax4_init", 7, argv[6] ));
1904
2191
  }
1905
- arg7 = (integer *)(argp7);
2192
+ arg7 = (int *)(argp7);
1906
2193
  res8 = SWIG_ConvertPtr(argv[7], &argp8,SWIGTYPE_p_int, 0 | 0 );
1907
2194
  if (!SWIG_IsOK(res8)) {
1908
- SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "relax4_init" "', argument " "8"" of type '" "integer []""'");
2195
+ SWIG_exception_fail(SWIG_ArgError(res8), Ruby_Format_TypeError( "", "int []","relax4_init", 8, argv[7] ));
1909
2196
  }
1910
- arg8 = (integer *)(argp8);
2197
+ arg8 = (int *)(argp8);
1911
2198
  ecode9 = SWIG_AsVal_int(argv[8], &val9);
1912
2199
  if (!SWIG_IsOK(ecode9)) {
1913
- SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "relax4_init" "', argument " "9"" of type '" "integer""'");
2200
+ SWIG_exception_fail(SWIG_ArgError(ecode9), Ruby_Format_TypeError( "", "int","relax4_init", 9, argv[8] ));
1914
2201
  }
1915
- arg9 = (integer)(val9);
2202
+ arg9 = (int)(val9);
1916
2203
  result = (int)relax4_init(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
1917
2204
  vresult = SWIG_From_int((int)(result));
1918
2205
  return vresult;
@@ -1924,9 +2211,9 @@ fail:
1924
2211
  SWIGINTERN VALUE
1925
2212
  _wrap_relax4_check_inputs(int argc, VALUE *argv, VALUE self) {
1926
2213
  int arg1 ;
1927
- int result;
1928
2214
  int val1 ;
1929
2215
  int ecode1 = 0 ;
2216
+ int result;
1930
2217
  VALUE vresult = Qnil;
1931
2218
 
1932
2219
  if ((argc < 1) || (argc > 1)) {
@@ -1934,7 +2221,7 @@ _wrap_relax4_check_inputs(int argc, VALUE *argv, VALUE self) {
1934
2221
  }
1935
2222
  ecode1 = SWIG_AsVal_int(argv[0], &val1);
1936
2223
  if (!SWIG_IsOK(ecode1)) {
1937
- SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "relax4_check_inputs" "', argument " "1"" of type '" "int""'");
2224
+ SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","relax4_check_inputs", 1, argv[0] ));
1938
2225
  }
1939
2226
  arg1 = (int)(val1);
1940
2227
  result = (int)relax4_check_inputs(arg1);
@@ -2040,31 +2327,27 @@ fail:
2040
2327
 
2041
2328
  /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
2042
2329
 
2043
- static void *_p_IntegerArrayTo_p_int(void *x) {
2330
+ static void *_p_IntegerArrayTo_p_int(void *x, int *SWIGUNUSEDPARM(newmemory)) {
2044
2331
  return (void *)((int *) ((IntegerArray *) x));
2045
2332
  }
2046
2333
  static swig_type_info _swigt__p_IntegerArray = {"_p_IntegerArray", "struct IntegerArray *|IntegerArray *", 0, 0, (void*)0, 0};
2047
2334
  static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
2048
- static swig_type_info _swigt__p_int = {"_p_int", "int *|integer *", 0, 0, (void*)0, 0};
2049
- static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *|uinteger *", 0, 0, (void*)0, 0};
2335
+ static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
2050
2336
 
2051
2337
  static swig_type_info *swig_type_initial[] = {
2052
2338
  &_swigt__p_IntegerArray,
2053
2339
  &_swigt__p_char,
2054
2340
  &_swigt__p_int,
2055
- &_swigt__p_unsigned_int,
2056
2341
  };
2057
2342
 
2058
2343
  static swig_cast_info _swigc__p_IntegerArray[] = { {&_swigt__p_IntegerArray, 0, 0, 0},{0, 0, 0, 0}};
2059
2344
  static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
2060
2345
  static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0}, {&_swigt__p_IntegerArray, _p_IntegerArrayTo_p_int, 0, 0},{0, 0, 0, 0}};
2061
- static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
2062
2346
 
2063
2347
  static swig_cast_info *swig_cast_initial[] = {
2064
2348
  _swigc__p_IntegerArray,
2065
2349
  _swigc__p_char,
2066
2350
  _swigc__p_int,
2067
- _swigc__p_unsigned_int,
2068
2351
  };
2069
2352
 
2070
2353
 
@@ -2084,7 +2367,7 @@ static swig_cast_info *swig_cast_initial[] = {
2084
2367
  * structures together.
2085
2368
  *
2086
2369
  * The generated swig_type_info structures are assigned staticly to an initial
2087
- * array. We just loop though that array, and handle each type individually.
2370
+ * array. We just loop through that array, and handle each type individually.
2088
2371
  * First we lookup if this type has been already loaded, and if so, use the
2089
2372
  * loaded structure instead of the generated one. Then we have to fill in the
2090
2373
  * cast linked list. The cast data is initially stored in something like a
@@ -2122,32 +2405,58 @@ extern "C" {
2122
2405
  #define SWIGRUNTIME_DEBUG
2123
2406
  #endif
2124
2407
 
2408
+
2125
2409
  SWIGRUNTIME void
2126
2410
  SWIG_InitializeModule(void *clientdata) {
2127
2411
  size_t i;
2128
- swig_module_info *module_head;
2129
- static int init_run = 0;
2412
+ swig_module_info *module_head, *iter;
2413
+ int found, init;
2130
2414
 
2131
2415
  clientdata = clientdata;
2132
2416
 
2133
- if (init_run) return;
2134
- init_run = 1;
2135
-
2136
- /* Initialize the swig_module */
2137
- swig_module.type_initial = swig_type_initial;
2138
- swig_module.cast_initial = swig_cast_initial;
2417
+ /* check to see if the circular list has been setup, if not, set it up */
2418
+ if (swig_module.next==0) {
2419
+ /* Initialize the swig_module */
2420
+ swig_module.type_initial = swig_type_initial;
2421
+ swig_module.cast_initial = swig_cast_initial;
2422
+ swig_module.next = &swig_module;
2423
+ init = 1;
2424
+ } else {
2425
+ init = 0;
2426
+ }
2139
2427
 
2140
2428
  /* Try and load any already created modules */
2141
2429
  module_head = SWIG_GetModule(clientdata);
2142
- if (module_head) {
2430
+ if (!module_head) {
2431
+ /* This is the first module loaded for this interpreter */
2432
+ /* so set the swig module into the interpreter */
2433
+ SWIG_SetModule(clientdata, &swig_module);
2434
+ module_head = &swig_module;
2435
+ } else {
2436
+ /* the interpreter has loaded a SWIG module, but has it loaded this one? */
2437
+ found=0;
2438
+ iter=module_head;
2439
+ do {
2440
+ if (iter==&swig_module) {
2441
+ found=1;
2442
+ break;
2443
+ }
2444
+ iter=iter->next;
2445
+ } while (iter!= module_head);
2446
+
2447
+ /* if the is found in the list, then all is done and we may leave */
2448
+ if (found) return;
2449
+ /* otherwise we must add out module into the list */
2143
2450
  swig_module.next = module_head->next;
2144
2451
  module_head->next = &swig_module;
2145
- } else {
2146
- /* This is the first module loaded */
2147
- swig_module.next = &swig_module;
2148
- SWIG_SetModule(clientdata, &swig_module);
2149
2452
  }
2150
-
2453
+
2454
+ /* When multiple interpeters are used, a module could have already been initialized in
2455
+ a different interpreter, but not yet have a pointer in this interpreter.
2456
+ In this case, we do not want to continue adding types... everything should be
2457
+ set up already */
2458
+ if (init == 0) return;
2459
+
2151
2460
  /* Now work on filling in swig_module.types */
2152
2461
  #ifdef SWIGRUNTIME_DEBUG
2153
2462
  printf("SWIG_InitializeModule: size %d\n", swig_module.size);
@@ -2281,7 +2590,9 @@ SWIG_PropagateClientData(void) {
2281
2590
  }
2282
2591
  #endif
2283
2592
 
2593
+ /*
2284
2594
 
2595
+ */
2285
2596
  #ifdef __cplusplus
2286
2597
  extern "C"
2287
2598
  #endif
@@ -2320,6 +2631,7 @@ SWIGEXPORT void Init_relax4(void) {
2320
2631
  rb_define_const(mRelax4, "RELAX4_OUTPUT_FAIL_COMPLEMENTARY_SLACKNESS", SWIG_From_int((int)(102)));
2321
2632
  rb_define_const(mRelax4, "RELAX4_DEFAULT_LARGE", SWIG_From_int((int)(500000000)));
2322
2633
  rb_define_const(mRelax4, "RELAX4_DEFAULT_MAX_COST", SWIG_From_int((int)((500000000/10))));
2634
+ rb_define_const(mRelax4, "RELAX4_UNCAPACITATED", SWIG_From_int((int)((500000000/10))));
2323
2635
  rb_define_module_function(mRelax4, "relax4_init", _wrap_relax4_init, -1);
2324
2636
  rb_define_module_function(mRelax4, "relax4_check_inputs", _wrap_relax4_check_inputs, -1);
2325
2637
  rb_define_module_function(mRelax4, "relax4_init_phase_1", _wrap_relax4_init_phase_1, -1);