[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