[DRE-commits] [ruby-bdb] 05/09: Add 'add-ruby2.1-support' patch
David Suárez
deiv-guest at moszumanska.debian.org
Sat May 3 12:05:16 UTC 2014
This is an automated email from the git hooks/post-receive script.
deiv-guest pushed a commit to branch master
in repository ruby-bdb.
commit c50c53837dd54622ee5814048c4883fa8abcd923
Author: David Suárez <david.sephirot at gmail.com>
Date: Fri May 2 22:20:29 2014 +0200
Add 'add-ruby2.1-support' patch
---
debian/patches/add-ruby2.1-support.patch | 97 ++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 98 insertions(+)
diff --git a/debian/patches/add-ruby2.1-support.patch b/debian/patches/add-ruby2.1-support.patch
new file mode 100644
index 0000000..70b9d4f
--- /dev/null
+++ b/debian/patches/add-ruby2.1-support.patch
@@ -0,0 +1,97 @@
+Description: Add support for ruby2.1
+
+Author: David Suárez <david.sephirot at gmail.com>
+Last-Update: 2014-05-02
+
+--- ruby-bdb-0.6.6.orig/src/common.c
++++ ruby-bdb-0.6.6/src/common.c
+@@ -1,4 +1,5 @@
+ #include "bdb.h"
++#include "compat.h"
+
+ #if ! HAVE_CONST_DB_GET_BOTH
+ #define DB_GET_BOTH 9
+@@ -1652,10 +1653,10 @@ bdb_init(int argc, VALUE *argv, VALUE ob
+ #endif
+ switch(dbst->type) {
+ case DB_BTREE:
+- RBASIC(obj)->klass = bdb_cBtree;
++ rb_obj_reveal(obj, bdb_cBtree);
+ break;
+ case DB_HASH:
+- RBASIC(obj)->klass = bdb_cHash;
++ rb_obj_reveal(obj, bdb_cHash);
+ break;
+ case DB_RECNO:
+ {
+@@ -1663,17 +1664,17 @@ bdb_init(int argc, VALUE *argv, VALUE ob
+
+ rb_warning("It's hard to distinguish Recnum with Recno for all versions of Berkeley DB");
+ if ((count = bdb_is_recnum(dbst->dbp)) != -1) {
+- RBASIC(obj)->klass = bdb_cRecnum;
++ rb_obj_reveal(obj, bdb_cRecnum);
+ dbst->len = count;
+ }
+ else {
+- RBASIC(obj)->klass = bdb_cRecno;
++ rb_obj_reveal(obj, bdb_cRecno);
+ }
+ break;
+ }
+ #if HAVE_CONST_DB_QUEUE
+ case DB_QUEUE:
+- RBASIC(obj)->klass = bdb_cQueue;
++ rb_obj_reveal(obj, bdb_cQueue);
+ break;
+ #endif
+ default:
+@@ -1717,29 +1718,29 @@ bdb_s_alloc(obj)
+ dbst->options = BDB_NOT_OPEN;
+ cl = obj;
+ while (cl) {
+- if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) {
++ if(RTEST(rb_ary_includes(rb_mod_ancestors(cl), bdb_cBtree))) {
+ dbst->type = DB_BTREE;
+ break;
+ }
+- if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) {
++ if(RTEST(rb_ary_includes(rb_mod_ancestors(cl), bdb_cRecnum))) {
+ dbst->type = DB_RECNO;
+ break;
+ }
+- else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) {
++ else if(RTEST(rb_ary_includes(rb_mod_ancestors(cl), bdb_cHash))) {
+ dbst->type = DB_HASH;
+ break;
+ }
+- else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) {
++ else if(RTEST(rb_ary_includes(rb_mod_ancestors(cl), bdb_cRecno))) {
+ dbst->type = DB_RECNO;
+ break;
+ }
+ #if HAVE_CONST_DB_QUEUE
+- else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) {
++ else if(RTEST(rb_ary_includes(rb_mod_ancestors(cl), bdb_cQueue))) {
+ dbst->type = DB_QUEUE;
+ break;
+ }
+ #endif
+- else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) {
++ else if(RTEST(rb_ary_includes(rb_mod_ancestors(cl), bdb_cUnknown))) {
+ dbst->type = DB_UNKNOWN;
+ break;
+ }
+--- /dev/null
++++ ruby-bdb-0.6.6/src/compat.h
+@@ -0,0 +1,11 @@
++
++#ifndef __COMPAT_H__
++#define __COMPAT_H__
++
++#include <ruby/version.h>
++
++#if RUBY_API_VERSION_CODE < 20100
++ #define rb_obj_reveal(o,k) RBASIC(o)->klass = k
++#endif
++
++#endif /* __COMPAT_H__ */
diff --git a/debian/patches/series b/debian/patches/series
index 9c1fcc9..0921e51 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,3 +11,4 @@ use-same-encoding-for-dup-test.patch
update-bdb-versions.patch
fix-integer-overflow-on-bdb_h_hash-callback.patch
dont-conflict-helpers-with-test-funcs.patch
+add-ruby2.1-support.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-bdb.git
More information about the Pkg-ruby-extras-commits
mailing list