[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH]fixing the long long problem for the perl-swig bindings.

From: Patrick Mayweg <mayweg_at_qint.de>
Date: 2004-03-18 07:39:56 CET

Patrick Mayweg wrote:

> Hi Ben,
> Ben Reser wrote:
>
>> On Wed, Mar 17, 2004 at 12:57:33PM +0100, Patrick Mayweg wrote:
>>
>>
>>> Hi,
>>> the problem with using the non standard types "long long" and
>>> "unsigned long long" happens also to be in
>>> subversion/bindings/swig/swigutil_pl.c.
>>> This patch replace all the system dependend types and printf format
>>> strings with the apr types and macros.
>>> [[
>>> * swigutil.c (svn_swig_pl_callback_thunk)
>>> replace the non standard types and printf format string with their
>>> apr counterparts
>>> ]]
>>>
>>> Index: swigutil_pl.c
>>> ===================================================================
>>> --- swigutil_pl.c (revision 9065)
>>> +++ swigutil_pl.c (working copy)
>>> @@ -312,14 +312,14 @@
>>> * it available as a string. If not then perl will convert
>>> * it to an IV for us. So this handles the problem
>>> gracefully */
>>> c = malloc(30);
>>> - snprintf(c,30,"%lld",va_arg(ap, long long));
>>> + snprintf(c,30,"%" APR_INT64_T_FMT,va_arg(ap, apr_int64_t));
>>> XPUSHs(sv_2mortal(newSVpv(c, 0)));
>>> free(c);
>>> break;
>>> case 'U': /* unsigned long long */
>>> c = malloc(30);
>>> - snprintf(c,30,"%llu",va_arg(ap, unsigned long long));
>>> + snprintf(c,30,"%"APR_INT64_T_FMT,va_arg(ap, apr_uint64_t));
>>> XPUSHs(sv_2mortal(newSVpv(c, 0)));
>>> free(c);
>>> break;
>>>
>>
>>
>> I need to seriously sit down and rework this code. I did a little fixup
>> on it to get around int vs long sizes but I really should handle apr
>> types better. I think there may be cases where we're actually passing C
>> types into this function and sometimes apr types. So before I make this
>> change I want to actually sit down and track all of these down and look
>> at them. I also want to update the documentation too.
>>
>>
>>
> Please remember that "long long" is not portable. A 64bit integer can
> be anything from "long", "long long" or "__int64" depending on your
> compiler.

After look through the perl include files, I have found in config.h the
types "Quad_t" and "I64TYPE" which look like they were perls way of
describing 64bit integers.

>
> I have another question. After appling the above patch, the build stop
> because swig is looking for "delta_editor.hi", which I did not find.
> Do you have any idea where that may be ?
>
> Regards,
> Patrick
>
>
Patrick

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Mar 18 07:35:08 2004

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.