Make pgen compile with pydebug. Duplicate normalized names, as it may

be longer than the old string.
This commit is contained in:
Martin v. Löwis 2002-08-04 20:10:29 +00:00
parent cd280fb59c
commit 1ee99d31d9
2 changed files with 8 additions and 2 deletions

View file

@ -128,8 +128,10 @@ tok_new(void)
tok->read_coding_spec = 0;
tok->issued_encoding_warning = 0;
tok->encoding = NULL;
#ifndef PGEN
tok->decoding_readline = NULL;
tok->decoding_buffer = NULL;
#endif
return tok;
}
@ -225,8 +227,8 @@ get_coding_spec(const char *s, int size)
char* r = new_string(begin, t - begin);
char* q = get_normal_name(r);
if (r != q) {
assert(strlen(r) >= strlen(q));
strcpy(r, q);
PyMem_DEL(r);
r = new_string(q, strlen(q));
}
return r;
}
@ -584,8 +586,10 @@ PyTokenizer_Free(struct tok_state *tok)
{
if (tok->encoding != NULL)
PyMem_DEL(tok->encoding);
#ifndef PGEN
Py_XDECREF(tok->decoding_readline);
Py_XDECREF(tok->decoding_buffer);
#endif
if (tok->fp != NULL && tok->buf != NULL)
PyMem_DEL(tok->buf);
PyMem_DEL(tok);

View file

@ -45,8 +45,10 @@ struct tok_state {
int read_coding_spec; /* whether 'coding:...' has been read */
int issued_encoding_warning; /* whether non-ASCII warning was issued */
char *encoding;
#ifndef PGEN
PyObject *decoding_readline; /* codecs.open(...).readline */
PyObject *decoding_buffer;
#endif
const char* enc;
const char* str;
};