diff options
Diffstat (limited to 'ext/sqlite3_api/sqlite3_api_wrap.c')
-rw-r--r-- | ext/sqlite3_api/sqlite3_api_wrap.c | 230 |
1 files changed, 115 insertions, 115 deletions
diff --git a/ext/sqlite3_api/sqlite3_api_wrap.c b/ext/sqlite3_api/sqlite3_api_wrap.c index ae78b77..039ef05 100644 --- a/ext/sqlite3_api/sqlite3_api_wrap.c +++ b/ext/sqlite3_api/sqlite3_api_wrap.c @@ -617,121 +617,121 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { } #endif -/*********************************************************************** - * rubytracking.swg - * - * This file contains support for tracking mappings from - * Ruby objects to C++ objects. This functionality is needed - * to implement mark functions for Ruby's mark and sweep - * garbage collector. - ************************************************************************/ - -/* Global Ruby hash table to store Trackings from C/C++ - structs to Ruby Objects. */ -static VALUE swig_ruby_trackings; - -/* Setup a Ruby hash table to store Trackings */ -static void SWIG_RubyInitializeTrackings() { - /* Create a ruby hash table to store Trackings from C++ - objects to Ruby objects. Also make sure to tell - the garabage collector about the hash table. */ - swig_ruby_trackings = rb_hash_new(); - rb_gc_register_address(&swig_ruby_trackings); -} - -/* Get a Ruby number to reference a pointer */ -static VALUE SWIG_RubyPtrToReference(void* ptr) { - /* We cast the pointer to an unsigned long - and then store a reference to it using - a Ruby number object. */ - - /* Convert the pointer to a Ruby number */ - unsigned long value = (unsigned long) ptr; - return LONG2NUM(value); -} - -/* Get a Ruby number to reference an object */ -static VALUE SWIG_RubyObjectToReference(VALUE object) { - /* We cast the object to an unsigned long - and then store a reference to it using - a Ruby number object. */ - - /* Convert the Object to a Ruby number */ - unsigned long value = (unsigned long) object; - return LONG2NUM(value); -} - -/* Get a Ruby object from a previously stored reference */ -static VALUE SWIG_RubyReferenceToObject(VALUE reference) { - /* The provided Ruby number object is a reference - to the Ruby object we want.*/ - - /* First convert the Ruby number to a C number */ - unsigned long value = NUM2LONG(reference); - return (VALUE) value; -} - -/* Add a Tracking from a C/C++ struct to a Ruby object */ -static void SWIG_RubyAddTracking(void* ptr, VALUE object) { - /* In a Ruby hash table we store the pointer and - the associated Ruby object. The trick here is - that we cannot store the Ruby object directly - if - we do then it cannot be garbage collected. So - instead we typecast it as a unsigned long and - convert it to a Ruby number object.*/ - - /* Get a reference to the pointer as a Ruby number */ - VALUE key = SWIG_RubyPtrToReference(ptr); - - /* Get a reference to the Ruby object as a Ruby number */ - VALUE value = SWIG_RubyObjectToReference(object); - - /* Store the mapping to the global hash table. */ - rb_hash_aset(swig_ruby_trackings, key, value); -} - -/* Get the Ruby object that owns the specified C/C++ struct */ -static VALUE SWIG_RubyInstanceFor(void* ptr) { - /* Get a reference to the pointer as a Ruby number */ - VALUE key = SWIG_RubyPtrToReference(ptr); - - /* Now lookup the value stored in the global hash table */ - VALUE value = rb_hash_aref(swig_ruby_trackings, key); - - if (value == Qnil) { - /* No object exists - return nil. */ - return Qnil; - } - else { - /* Convert this value to Ruby object */ - return SWIG_RubyReferenceToObject(value); - } -} - -/* Remove a Tracking from a C/C++ struct to a Ruby object */ -static void SWIG_RubyRemoveTracking(void* ptr) { - /* Get a reference to the pointer as a Ruby number */ - VALUE key = SWIG_RubyPtrToReference(ptr); +/***********************************************************************
+ * rubytracking.swg
+ *
+ * This file contains support for tracking mappings from
+ * Ruby objects to C++ objects. This functionality is needed
+ * to implement mark functions for Ruby's mark and sweep
+ * garbage collector.
+ ************************************************************************/
+
+/* Global Ruby hash table to store Trackings from C/C++
+ structs to Ruby Objects. */
+static VALUE swig_ruby_trackings;
+
+/* Setup a Ruby hash table to store Trackings */
+static void SWIG_RubyInitializeTrackings() {
+ /* Create a ruby hash table to store Trackings from C++
+ objects to Ruby objects. Also make sure to tell
+ the garabage collector about the hash table. */
+ swig_ruby_trackings = rb_hash_new();
+ rb_gc_register_address(&swig_ruby_trackings);
+}
+
+/* Get a Ruby number to reference a pointer */
+static VALUE SWIG_RubyPtrToReference(void* ptr) {
+ /* We cast the pointer to an unsigned long
+ and then store a reference to it using
+ a Ruby number object. */
+
+ /* Convert the pointer to a Ruby number */
+ unsigned long value = (unsigned long) ptr;
+ return LONG2NUM(value);
+}
+
+/* Get a Ruby number to reference an object */
+static VALUE SWIG_RubyObjectToReference(VALUE object) {
+ /* We cast the object to an unsigned long
+ and then store a reference to it using
+ a Ruby number object. */
+
+ /* Convert the Object to a Ruby number */
+ unsigned long value = (unsigned long) object;
+ return LONG2NUM(value);
+}
+
+/* Get a Ruby object from a previously stored reference */
+static VALUE SWIG_RubyReferenceToObject(VALUE reference) {
+ /* The provided Ruby number object is a reference
+ to the Ruby object we want.*/
+
+ /* First convert the Ruby number to a C number */
+ unsigned long value = NUM2LONG(reference);
+ return (VALUE) value;
+}
+
+/* Add a Tracking from a C/C++ struct to a Ruby object */
+static void SWIG_RubyAddTracking(void* ptr, VALUE object) {
+ /* In a Ruby hash table we store the pointer and
+ the associated Ruby object. The trick here is
+ that we cannot store the Ruby object directly - if
+ we do then it cannot be garbage collected. So
+ instead we typecast it as a unsigned long and
+ convert it to a Ruby number object.*/
+
+ /* Get a reference to the pointer as a Ruby number */
+ VALUE key = SWIG_RubyPtrToReference(ptr);
+
+ /* Get a reference to the Ruby object as a Ruby number */
+ VALUE value = SWIG_RubyObjectToReference(object);
+
+ /* Store the mapping to the global hash table. */
+ rb_hash_aset(swig_ruby_trackings, key, value);
+}
+
+/* Get the Ruby object that owns the specified C/C++ struct */
+static VALUE SWIG_RubyInstanceFor(void* ptr) {
+ /* Get a reference to the pointer as a Ruby number */
+ VALUE key = SWIG_RubyPtrToReference(ptr);
+
+ /* Now lookup the value stored in the global hash table */
+ VALUE value = rb_hash_aref(swig_ruby_trackings, key);
+
+ if (value == Qnil) {
+ /* No object exists - return nil. */
+ return Qnil;
+ }
+ else {
+ /* Convert this value to Ruby object */
+ return SWIG_RubyReferenceToObject(value);
+ }
+} +
+/* Remove a Tracking from a C/C++ struct to a Ruby object */
+static void SWIG_RubyRemoveTracking(void* ptr) {
+ /* Get a reference to the pointer as a Ruby number */
+ VALUE key = SWIG_RubyPtrToReference(ptr);
/* Define delete method - in C++ this could be marked as static but unfortunately not in C. */ - VALUE delete_function = rb_intern("delete"); + VALUE delete_function = rb_intern("delete");
/* Delete the object from the hash table by calling Ruby's do this we need to call the Hash.delete method.*/ rb_funcall(swig_ruby_trackings, delete_function, 1, key); -} - -/* This is a helper method that unlinks a Ruby object from its - underlying C++ object. This is needed if the lifetime of the - Ruby object is longer than the C++ object */ -static void SWIG_RubyUnlinkObjects(void* ptr) { - VALUE object = SWIG_RubyInstanceFor(ptr); - - if (object != Qnil) { - DATA_PTR(object) = 0; - } -} +}
+
+/* This is a helper method that unlinks a Ruby object from its
+ underlying C++ object. This is needed if the lifetime of the
+ Ruby object is longer than the C++ object */
+static void SWIG_RubyUnlinkObjects(void* ptr) {
+ VALUE object = SWIG_RubyInstanceFor(ptr);
+
+ if (object != Qnil) {
+ DATA_PTR(object) = 0;
+ }
+}
/* Common SWIG API */ #define SWIG_ConvertPtr(obj, pp, type, flags) \ @@ -1073,8 +1073,8 @@ struct CallbackData { }; typedef struct CallbackData CallbackData; -typedef void BLOB; -typedef void VALBLOB; +typedef void RUBY_BLOB; +typedef void RUBY_VALBLOB; int Sqlite3_ruby_busy_handler(void* data,int value) { VALUE result; @@ -2035,14 +2035,14 @@ static VALUE _wrap_sqlite3_column_blob(int argc, VALUE *argv, VALUE self) { sqlite3_stmt *arg1 = (sqlite3_stmt *) 0 ; int arg2 ; - BLOB *result; + RUBY_BLOB *result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_sqlite3_stmt, 0); arg2 = NUM2INT(argv[1]); - result = (BLOB *)sqlite3_column_blob(arg1,arg2); + result = (RUBY_BLOB *)sqlite3_column_blob(arg1,arg2); { vresult = result ? @@ -2319,13 +2319,13 @@ _wrap_sqlite3_aggregate_count(int argc, VALUE *argv, VALUE self) { static VALUE _wrap_sqlite3_value_blob(int argc, VALUE *argv, VALUE self) { sqlite3_value *arg1 = (sqlite3_value *) 0 ; - VALBLOB *result; + RUBY_VALBLOB *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_sqlite3_value, 0); - result = (VALBLOB *)sqlite3_value_blob(arg1); + result = (RUBY_VALBLOB *)sqlite3_value_blob(arg1); { vresult = result ? rb_str_new( (char*)result, sqlite3_value_bytes( arg1 ) ) : Qnil; @@ -2763,7 +2763,7 @@ static swig_type_info _swigt__p_sqlite3_stmt = {"_p_sqlite3_stmt", "sqlite3_stmt static swig_type_info _swigt__p_sqlite3_value = {"_p_sqlite3_value", "sqlite3_value *", 0, 0, 0}; static swig_type_info _swigt__p_sqlite_int64 = {"_p_sqlite_int64", "sqlite_int64 *", 0, 0, 0}; static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "unsigned long *|VALUE *", 0, 0, 0}; -static swig_type_info _swigt__p_void = {"_p_void", "void *|VALBLOB *", 0, 0, 0}; +static swig_type_info _swigt__p_void = {"_p_void", "void *|RUBY_VALBLOB *", 0, 0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_CallbackData, |