do_sqlite3 0.10.8-x86-mingw32 → 0.10.9-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog.markdown CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.10.9 2012-08-13
2
+
3
+ * Fix segfault when loading custom extensions
4
+
1
5
  ## 0.10.8 2012-02-10
2
6
 
3
7
  * Ruby 1.9.3 compatibility on Windows
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ JRUBY = RUBY_PLATFORM =~ /java/
15
15
  IRONRUBY = defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ironruby'
16
16
  WINDOWS = Gem.win_platform? || (JRUBY && ENV_JAVA['os.name'] =~ /windows/i)
17
17
  SUDO = WINDOWS ? '' : ('sudo' unless ENV['SUDOLESS'])
18
- BINARY_VERSION = '3070600'
18
+ BINARY_VERSION = '3071300'
19
19
 
20
20
  CLEAN.include(%w[ {tmp,pkg}/ **/*.{o,so,bundle,jar,log,a,gem,dSYM,obj,pdb,exp,DS_Store,rbc,db} ext/do_sqlite3/Makefile ext-java/target ])
21
21
 
@@ -185,6 +185,10 @@ VALUE data_objects_parse_date(const char *date) {
185
185
  return Qnil;
186
186
  }
187
187
 
188
+ if(!year && !month && !day) {
189
+ return Qnil;
190
+ }
191
+
188
192
  return rb_funcall(rb_cDate, ID_NEW, 3, INT2NUM(year), INT2NUM(month), INT2NUM(day));
189
193
  }
190
194
 
@@ -237,6 +241,10 @@ VALUE data_objects_parse_date_time(const char *date) {
237
241
  fmt_datetime = strchr(date, '.') ? _fmt_datetime_tz_subsec : _fmt_datetime_tz_normal;
238
242
  tokens_read = sscanf(date, fmt_datetime, &year, &month, &day, &hour, &min, &sec, &hour_offset, &minute_offset);
239
243
 
244
+ if(!year && !month && !day && !hour && !min && !sec) {
245
+ return Qnil;
246
+ }
247
+
240
248
  switch (tokens_read) {
241
249
  case 8:
242
250
  minute_offset *= hour_offset < 0 ? -1 : 1;
@@ -172,7 +172,8 @@ VALUE do_sqlite3_cConnection_dispose(VALUE self) {
172
172
  return Qfalse;
173
173
  }
174
174
 
175
- sqlite3 *db = DATA_PTR(connection_container);
175
+ sqlite3 *db;
176
+ Data_Get_Struct(connection_container, sqlite3, db);
176
177
 
177
178
  if (!db) {
178
179
  return Qfalse;
@@ -16,12 +16,15 @@ VALUE do_sqlite3_cExtension_enable_load_extension(VALUE self, VALUE on) {
16
16
  if (connection == Qnil) { return Qfalse; }
17
17
 
18
18
  // Retrieve the actual connection from the
19
- connection = rb_iv_get(self, "@connection");
19
+ VALUE sqlite3_connection = rb_iv_get(connection, "@connection");
20
20
 
21
- if (connection == Qnil) { return Qfalse; }
21
+ if (sqlite3_connection == Qnil) { return Qfalse; }
22
22
 
23
23
  sqlite3 *db;
24
24
 
25
+ Data_Get_Struct(sqlite3_connection, sqlite3, db);
26
+
27
+
25
28
  if (!(db = DATA_PTR(connection))) {
26
29
  return Qfalse;
27
30
  }
@@ -40,26 +43,23 @@ VALUE do_sqlite3_cExtension_enable_load_extension(VALUE self, VALUE on) {
40
43
 
41
44
  VALUE do_sqlite3_cExtension_load_extension(VALUE self, VALUE path) {
42
45
  #ifdef HAVE_SQLITE3_ENABLE_LOAD_EXTENSION
43
- VALUE id_connection = rb_intern("connection");
44
- VALUE connection = rb_funcall(self, id_connection, 0);
46
+ VALUE connection = rb_iv_get(self, "@connection");
45
47
 
46
48
  if (connection == Qnil) { return Qfalse; }
47
49
 
48
- // Retrieve the actual connection from the
49
- connection = rb_iv_get(self, "@connection");
50
+ // Retrieve the actual connection from the object
51
+ VALUE sqlite3_connection = rb_iv_get(connection, "@connection");
50
52
 
51
- if (connection == Qnil) { return Qfalse; }
53
+ if (sqlite3_connection == Qnil) { return Qfalse; }
52
54
 
53
55
  sqlite3 *db;
54
56
 
55
- if (!(db = DATA_PTR(connection))) {
56
- return Qfalse;
57
- }
57
+ Data_Get_Struct(sqlite3_connection, sqlite3, db);
58
58
 
59
59
  const char *extension_path = rb_str_ptr_readonly(path);
60
- char *errmsg;
60
+ char *errmsg = sqlite3_malloc(1024);
61
61
 
62
- if (!(errmsg = sqlite3_malloc(1024))) {
62
+ if (!errmsg) {
63
63
  return Qfalse;
64
64
  }
65
65
 
@@ -72,6 +72,7 @@ VALUE do_sqlite3_cExtension_load_extension(VALUE self, VALUE path) {
72
72
  rb_exc_raise(errexp);
73
73
  }
74
74
 
75
+ sqlite3_free(errmsg);
75
76
  return Qtrue;
76
77
  #else
77
78
  return Qfalse;
data/lib/do_sqlite3.rb CHANGED
@@ -11,7 +11,7 @@ if RUBY_PLATFORM =~ /java/
11
11
 
12
12
  begin
13
13
  java.lang.Thread.currentThread.getContextClassLoader().loadClass(DataObjects::Sqlite3::JDBC_DRIVER, true)
14
- rescue
14
+ rescue java.lang.ClassNotFoundException
15
15
  require 'jdbc/sqlite3' # the JDBC driver, packaged as a gem
16
16
  end
17
17
 
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  module DataObjects
2
2
  module Sqlite3
3
- VERSION = '0.10.8'
3
+ VERSION = '0.10.9'
4
4
  end
5
5
  end
data/tasks/compile.rake CHANGED
@@ -55,7 +55,7 @@ begin
55
55
  ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
56
56
  ext.java_compiling do |gem|
57
57
  gem.add_dependency 'jdbc-sqlite3', '>=3.5.8'
58
- gem.add_dependency 'do_jdbc', '0.10.8'
58
+ gem.add_dependency 'do_jdbc', '0.10.9'
59
59
  end
60
60
  end
61
61
  rescue LoadError
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: do_sqlite3
3
3
  version: !ruby/object:Gem::Version
4
- hash: 39
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 10
9
- - 8
10
- version: 0.10.8
8
+ - 9
9
+ version: 0.10.9
11
10
  platform: x86-mingw32
12
11
  authors:
13
12
  - Dirkjan Bussink
@@ -15,53 +14,48 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-03-29 00:00:00 Z
17
+ date: 2011-03-29 00:00:00 +02:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
+ prerelease: false
22
+ type: :runtime
23
+ name: data_objects
21
24
  version_requirements: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
25
  requirements:
24
26
  - - "="
25
27
  - !ruby/object:Gem::Version
26
- hash: 39
27
28
  segments:
28
29
  - 0
29
30
  - 10
30
- - 8
31
- version: 0.10.8
32
- name: data_objects
33
- prerelease: false
34
- type: :runtime
31
+ - 9
32
+ version: 0.10.9
35
33
  requirement: *id001
36
34
  - !ruby/object:Gem::Dependency
35
+ prerelease: false
36
+ type: :development
37
+ name: rspec
37
38
  version_requirements: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
39
  requirements:
40
40
  - - ~>
41
41
  - !ruby/object:Gem::Version
42
- hash: 9
43
42
  segments:
44
43
  - 2
45
44
  - 5
46
45
  version: "2.5"
47
- name: rspec
48
- prerelease: false
49
- type: :development
50
46
  requirement: *id002
51
47
  - !ruby/object:Gem::Dependency
48
+ prerelease: false
49
+ type: :development
50
+ name: rake-compiler
52
51
  version_requirements: &id003 !ruby/object:Gem::Requirement
53
- none: false
54
52
  requirements:
55
53
  - - ~>
56
54
  - !ruby/object:Gem::Version
57
- hash: 5
58
55
  segments:
59
56
  - 0
60
57
  - 7
61
58
  version: "0.7"
62
- name: rake-compiler
63
- prerelease: false
64
- type: :development
65
59
  requirement: *id003
66
60
  description: Implements the DataObjects API for Sqlite3
67
61
  email: d.bussink@gmail.com
@@ -116,6 +110,7 @@ files:
116
110
  - tasks/spec.rake
117
111
  - lib/do_sqlite3/1.8/do_sqlite3.so
118
112
  - lib/do_sqlite3/1.9/do_sqlite3.so
113
+ has_rdoc: true
119
114
  homepage:
120
115
  licenses: []
121
116
 
@@ -124,13 +119,13 @@ post_install_message: |+
124
119
  =============================================================================
125
120
 
126
121
  You've installed the binary version of do_sqlite3.
127
- It was built using Sqlite3 version 3070600.
122
+ It was built using Sqlite3 version 3071300.
128
123
  It's recommended to use the exact same version to avoid potential issues.
129
124
 
130
125
  At the time of building this gem, the necessary DLL files where available
131
126
  in the following download:
132
127
 
133
- http://www.sqlite.org/sqlitedll-3070600.zip
128
+ http://www.sqlite.org/sqlitedll-3071300.zip
134
129
 
135
130
  You can put the sqlite3.dll available in this package in your Ruby bin
136
131
  directory, for example C:\Ruby\bin
@@ -142,27 +137,23 @@ rdoc_options: []
142
137
  require_paths:
143
138
  - lib
144
139
  required_ruby_version: !ruby/object:Gem::Requirement
145
- none: false
146
140
  requirements:
147
141
  - - ">="
148
142
  - !ruby/object:Gem::Version
149
- hash: 3
150
143
  segments:
151
144
  - 0
152
145
  version: "0"
153
146
  required_rubygems_version: !ruby/object:Gem::Requirement
154
- none: false
155
147
  requirements:
156
148
  - - ">="
157
149
  - !ruby/object:Gem::Version
158
- hash: 3
159
150
  segments:
160
151
  - 0
161
152
  version: "0"
162
153
  requirements: []
163
154
 
164
155
  rubyforge_project: dorb
165
- rubygems_version: 1.8.14
156
+ rubygems_version: 1.3.6
166
157
  signing_key:
167
158
  specification_version: 3
168
159
  summary: DataObjects Sqlite3 Driver