2009-02-26 Phil Muldoon <pmuldoon@redhat.com>

* python/python-utils.c (python_string_to_unicode): Always return
        a new reference.
        (python_string_to_target_string): Decrement transient python
        instance.
        (python_string_to_host_string): Likewise.
This commit is contained in:
Phil Muldoon 2009-02-26 20:45:21 +00:00
parent a0740d21fa
commit 83390453c3
2 changed files with 22 additions and 4 deletions

View File

@ -1,4 +1,12 @@
2009-02-26 Pedro Alves <pedro@codesourcery.com>
2009-02-26 Phil Muldoon <pmuldoon@redhat.com>
* python/python-utils.c (python_string_to_unicode): Always return
a new reference.
(python_string_to_target_string): Decrement transient python
instance.
(python_string_to_host_string): Likewise.
2007-02-26 Pedro Alves <pedro@codesourcery.com>
* mips-linux-nat.c (mips64_linux_fetch_registers): Pass `ops' to
call to super_fetch_registers.

View File

@ -81,7 +81,11 @@ python_string_to_unicode (PyObject *obj)
/* If obj is already a unicode string, just return it.
I wish life was always that simple... */
if (PyUnicode_Check (obj))
unicode_str = obj;
{
unicode_str = obj;
Py_INCREF (obj);
}
else if (PyString_Check (obj))
unicode_str = PyUnicode_FromEncodedObject (obj, host_charset (), NULL);
else
@ -136,12 +140,15 @@ char *
python_string_to_target_string (PyObject *obj)
{
PyObject *str;
char *result;
str = python_string_to_unicode (obj);
if (str == NULL)
return NULL;
return unicode_to_target_string (str);
result = unicode_to_target_string (str);
Py_DECREF (str);
return result;
}
/* Converts a python string (8-bit or unicode) to a target string in
@ -152,12 +159,15 @@ char *
python_string_to_host_string (PyObject *obj)
{
PyObject *str;
char *result;
str = python_string_to_unicode (obj);
if (str == NULL)
return NULL;
return unicode_to_encoded_string (str, host_charset ());
result = unicode_to_encoded_string (str, host_charset ());
Py_DECREF (str);
return result;
}
/* Converts a target string of LENGTH bytes in the target's charset to a