[svn:dbd-oracle] r14588 - dbd-oracle/trunk

[email protected] Fri, 17 Dec 2010 08:04:31 -0800 (PST)
Newsgroups perl.dbd.oracle.changes
Message-ID <[email protected]>
Author: byterock
Date: Fri Dec 17 08:04:31 2010
New Revision: 14588

Modified:
   dbd-oracle/trunk/oci8.c

Log:
 Fix for support for objects on big endian platforms from Charles Jardine, John R Pierce


Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c	(original)
+++ dbd-oracle/trunk/oci8.c	Fri Dec 17 08:04:31 2010
@@ -2045,6 +2045,7 @@
 	text		str_buf[200];
 	double		dnum;
 	size_t		str_len;
+	ub4			ub4_str_len;
 	OCIRaw		*raw 	= (OCIRaw *) 0;
 	OCIString	*vs 	= (OCIString *) 0;
 	ub1			*temp	= (ub1 *)0;
@@ -2068,7 +2069,7 @@
 		 						fbh->imp_sth->errhp,
 		 						attr_value,
 		 						str_buf,
-		 						200,
+		 						(size_t) 200,
 		 						&str_len,
 							status);
 		str_buf[str_len+1] = '\0';
@@ -2080,9 +2081,9 @@
 	case OCI_TYPECODE_TIMESTAMP :
 
 
-		str_len = 200;
+		ub4_str_len = 200;
 		OCIDateTimeToText_log_stat(fbh->imp_sth->envhp,
-									fbh->imp_sth->errhp,attr_value,&str_len,str_buf,status);
+									fbh->imp_sth->errhp,attr_value,&ub4_str_len,str_buf,status);
 
 		if (typecode == OCI_TYPECODE_TIMESTAMP_TZ || typecode == OCI_TYPECODE_TIMESTAMP_LTZ){
 			char s_tz_hour[3]="000";
@@ -2104,19 +2105,19 @@
 			sprintf(s_tz_min,":%02d", tz_minute);
 			strcat((signed char*)str_buf, s_tz_hour);
 			strcat((signed char*)str_buf, s_tz_min);
-			str_buf[str_len+7] = '\0';
+			str_buf[ub4_str_len+7] = '\0';
 
 		} else {
-		  str_buf[str_len+1] = '\0';
+		  str_buf[ub4_str_len+1] = '\0';
 		}
 
 		av_push(list, newSVpv( (char *) str_buf,0));
 		break;
 
 	case OCI_TYPECODE_DATE :						 /* fixed length string*/
-		str_len = 200;
-		OCIDateToText_log_stat(fbh->imp_sth->errhp, (CONST OCIDate *) attr_value,&str_len,str_buf,status);
-		str_buf[str_len+1] = '\0';
+		ub4_str_len = 200;
+		OCIDateToText_log_stat(fbh->imp_sth->errhp, (CONST OCIDate *) attr_value,&ub4_str_len,str_buf,status);
+		str_buf[ub4_str_len+1] = '\0';
 		av_push(list, newSVpv( (char *) str_buf,0));
 		break;