From 260aec1f9de8f1c904d50d359dfb8964d58d37f2 Mon Sep 17 00:00:00 2001 From: Chip Black Date: Fri, 15 Nov 2013 22:26:48 -0600 Subject: [PATCH] Fix 64-bit-ness in Database.xs --- lib/perl/Blerg-Database/Database.xs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/perl/Blerg-Database/Database.xs b/lib/perl/Blerg-Database/Database.xs index df1c463..04406c8 100644 --- a/lib/perl/Blerg-Database/Database.xs +++ b/lib/perl/Blerg-Database/Database.xs @@ -49,19 +49,25 @@ int _close(struct blerg *ptr) OUTPUT: RETVAL -int _store(struct blerg *ptr, const char *data, int length(data)) +const char * _store(struct blerg *ptr, const char *data, int length(data)) PROTOTYPE: $$ - CODE: - RETVAL = blerg_store(ptr, data, XSauto_length_of_data); - OUTPUT: - RETVAL + INIT: + uint64_t record; + char buf[21]; + int n; + PPCODE: + record = blerg_store(ptr, data, XSauto_length_of_data); + n = snprintf(buf, 21, "%llu", record); + XPUSHs(sv_2mortal(newSVpv(buf, n))); -const char * _fetch(struct blerg *ptr, int record) +const char * _fetch(struct blerg *ptr, const char *str_record) INIT: + uint64_t record; char *buf; int buflen; int n; PPCODE: + record = strtoull(str_record, NULL, 0); n = blerg_fetch(ptr, record, &buf, &buflen); if (!n) { XSRETURN_UNDEF; @@ -79,8 +85,11 @@ const char * _get_record_count(struct blerg *ptr) n = snprintf(buf, 21, "%llu", count); XPUSHs(sv_2mortal(newSVpv(buf, n))); -time_t _get_timestamp(struct blerg *ptr, int record) +time_t _get_timestamp(struct blerg *ptr, const char *str_record) + INIT: + uint64_t record; CODE: + record = strtoull(str_record, NULL, 0); RETVAL = blerg_get_timestamp(ptr, record); OUTPUT: RETVAL -- 2.25.1