Fix more 64-bit warnings.

This commit is contained in:
Antoine Pitrou 2010-08-15 18:51:10 +00:00
parent 22e4155706
commit 4045575dd5
2 changed files with 11 additions and 15 deletions

View File

@ -6,10 +6,6 @@ This module provides the low-level underpinnings of a CSV reading/writing
module. Users should not use this module directly, but import the csv.py module. Users should not use this module directly, but import the csv.py
module instead. module instead.
**** For people modifying this code, please note that as of this writing
**** (2003-03-23), it is intended that this code should work with Python
**** 2.2.
*/ */
#define MODULE_VERSION "1.0" #define MODULE_VERSION "1.0"
@ -73,7 +69,7 @@ typedef struct {
PyObject *fields; /* field list for current record */ PyObject *fields; /* field list for current record */
ParserState state; /* current CSV parse state */ ParserState state; /* current CSV parse state */
Py_UNICODE *field; /* build current field in here */ Py_UNICODE *field; /* build current field in here */
int field_size; /* size of allocated buffer */ Py_ssize_t field_size; /* size of allocated buffer */
Py_ssize_t field_len; /* length of current field */ Py_ssize_t field_len; /* length of current field */
int numeric_field; /* treat field as numeric */ int numeric_field; /* treat field as numeric */
unsigned long line_num; /* Source-file line number */ unsigned long line_num; /* Source-file line number */
@ -91,7 +87,7 @@ typedef struct {
DialectObj *dialect; /* parsing dialect */ DialectObj *dialect; /* parsing dialect */
Py_UNICODE *rec; /* buffer for parser.join */ Py_UNICODE *rec; /* buffer for parser.join */
int rec_size; /* size of allocated record */ Py_ssize_t rec_size; /* size of allocated record */
Py_ssize_t rec_len; /* length of record */ Py_ssize_t rec_len; /* length of record */
int num_fields; /* number of fields in record */ int num_fields; /* number of fields in record */
} WriterObj; } WriterObj;
@ -533,7 +529,7 @@ parse_grow_buff(ReaderObj *self)
self->field = PyMem_New(Py_UNICODE, self->field_size); self->field = PyMem_New(Py_UNICODE, self->field_size);
} }
else { else {
if (self->field_size > INT_MAX / 2) { if (self->field_size > PY_SSIZE_T_MAX / 2) {
PyErr_NoMemory(); PyErr_NoMemory();
return 0; return 0;
} }
@ -948,13 +944,13 @@ join_reset(WriterObj *self)
/* Calculate new record length or append field to record. Return new /* Calculate new record length or append field to record. Return new
* record length. * record length.
*/ */
static int static Py_ssize_t
join_append_data(WriterObj *self, Py_UNICODE *field, int quote_empty, join_append_data(WriterObj *self, Py_UNICODE *field, int quote_empty,
int *quoted, int copy_phase) int *quoted, int copy_phase)
{ {
DialectObj *dialect = self->dialect; DialectObj *dialect = self->dialect;
int i; int i;
int rec_len; Py_ssize_t rec_len;
Py_UNICODE *lineterm; Py_UNICODE *lineterm;
#define ADDCH(c) \ #define ADDCH(c) \
@ -1040,10 +1036,10 @@ join_append_data(WriterObj *self, Py_UNICODE *field, int quote_empty,
} }
static int static int
join_check_rec_size(WriterObj *self, int rec_len) join_check_rec_size(WriterObj *self, Py_ssize_t rec_len)
{ {
if (rec_len < 0 || rec_len > INT_MAX - MEM_INCR) { if (rec_len < 0 || rec_len > PY_SSIZE_T_MAX - MEM_INCR) {
PyErr_NoMemory(); PyErr_NoMemory();
return 0; return 0;
} }
@ -1075,7 +1071,7 @@ join_check_rec_size(WriterObj *self, int rec_len)
static int static int
join_append(WriterObj *self, Py_UNICODE *field, int *quoted, int quote_empty) join_append(WriterObj *self, Py_UNICODE *field, int *quoted, int quote_empty)
{ {
int rec_len; Py_ssize_t rec_len;
rec_len = join_append_data(self, field, quote_empty, quoted, 0); rec_len = join_append_data(self, field, quote_empty, quoted, 0);
if (rec_len < 0) if (rec_len < 0)
@ -1094,7 +1090,7 @@ join_append(WriterObj *self, Py_UNICODE *field, int *quoted, int quote_empty)
static int static int
join_append_lineterminator(WriterObj *self) join_append_lineterminator(WriterObj *self)
{ {
int terminator_len; Py_ssize_t terminator_len;
Py_UNICODE *terminator; Py_UNICODE *terminator;
terminator_len = PyUnicode_GetSize(self->dialect->lineterminator); terminator_len = PyUnicode_GetSize(self->dialect->lineterminator);
@ -1125,7 +1121,7 @@ static PyObject *
csv_writerow(WriterObj *self, PyObject *seq) csv_writerow(WriterObj *self, PyObject *seq)
{ {
DialectObj *dialect = self->dialect; DialectObj *dialect = self->dialect;
int len, i; Py_ssize_t len, i;
if (!PySequence_Check(seq)) if (!PySequence_Check(seq))
return PyErr_Format(error_obj, "sequence expected"); return PyErr_Format(error_obj, "sequence expected");

View File

@ -664,7 +664,7 @@ binascii_rlecode_hqx(PyObject *self, PyObject *args)
/* More than 3 in a row. Output RLE. */ /* More than 3 in a row. Output RLE. */
*out_data++ = ch; *out_data++ = ch;
*out_data++ = RUNCHAR; *out_data++ = RUNCHAR;
*out_data++ = (unsigned char) inend-in; *out_data++ = (unsigned char) (inend-in);
in = inend-1; in = inend-1;
} else { } else {
/* Less than 3. Output the byte itself */ /* Less than 3. Output the byte itself */