On 4/17/24 12:02 AM, Graham Leggett via dev wrote:
> Hi all,
> 
>> +/**
>> + * Structure for efficiently tracking a buffer that could contain
>> + * a zero terminated string, or a fixed length non zero string.
>> + */
>> +typedef struct
>> +{
>> +    /** pointer to the data, which could be a string or a memory block. */
>> +    union {
>> +        char *str;
>> +        void *mem;
>> +    } d;
>> +
>> +    /** size of the data. If positive, the data is of fixed size. If
>> +      * negative, the data is zero terminated and the absolute value
>> +      * represents the data length including terminating zero.
>> +      *
>> +      * we use apr_int64_t to make it simple to detect overflow.
>> +      */
>> +    apr_int64_t size;
>> +
>> +} apr_buffer_t;
> 
> I need some advice on handling Windows 32 bit. apr_int64_t for size is too 
> big, and tests are failing.
> 
> Technically apr_ssize_t is the right size, but the definition of ssize_t is 
> [-1, SSIZE_MAX]. I need a signed very big number. Given we define 
> apr_ssize_t, is it ok to use apr_ssize_t anyway?

How about off_t / apr_off_t instead?

Regards

RĂ¼diger

Reply via email to