THRIFT-664. rb: Ruby extension fails to build with Ruby 1.9.1

This change takes care of the 1.9 build issues and a few other c-extension niceties.

Patch: Rajesh Malepati

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@984524 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Bryan Duxbury 2010-08-11 18:37:25 +00:00
parent f66525f56c
commit 09d13c2edf
2 changed files with 11 additions and 6 deletions

View File

@ -20,8 +20,8 @@
#include <ruby.h>
#include <stdbool.h>
#include <stdint.h>
#include <constants.h>
#include <struct.h>
#include "constants.h"
#include "struct.h"
#include "macros.h"
#define LAST_ID(obj) FIX2INT(rb_ary_pop(rb_ivar_get(obj, last_field_id)))
@ -458,7 +458,7 @@ VALUE rb_thrift_compact_proto_read_field_begin(VALUE self) {
if (modifier == 0) {
// not a delta. look ahead for the zigzag varint field id.
LAST_ID(self);
(void) LAST_ID(self);
field_id = read_i16(self);
} else {
// has a delta. add the delta to the last read field id.

View File

@ -17,8 +17,8 @@
* under the License.
*/
#include <struct.h>
#include <constants.h>
#include "struct.h"
#include "constants.h"
#include "macros.h"
#ifndef HAVE_STRLCPY
@ -40,7 +40,12 @@ strlcpy (char *dst, const char *src, size_t dst_sz)
*(dst - 1) = '\0';
return n + strlen (src);
}
#else
/*
Ruby 1.9.x includes the OpenBSD implementation of strlcpy.
See missing/strlcpy.c in Ruby 1.9 source
*/
extern size_t strlcpy(char *, const char *, size_t);
#endif
VALUE thrift_union_class;