[Uludag-commits] r14674 - trunk/staj-projeleri/zorg/zorg/ddc
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
3 Tem 2007 Sal 11:06:06 EEST
Author: fatih
Date: Tue Jul 3 11:06:06 2007
New Revision: 14674
Modified:
trunk/staj-projeleri/zorg/zorg/ddc/ddc.c
Log:
* Fixed some memory leaks.
* Remove the code waiting for monitors to respond. That is not true.
Modified: trunk/staj-projeleri/zorg/zorg/ddc/ddc.c
=================================================================
--- trunk/staj-projeleri/zorg/zorg/ddc/ddc.c (original)
+++ trunk/staj-projeleri/zorg/zorg/ddc/ddc.c Tue Jul 3 11:06:06 2007
@@ -241,6 +241,7 @@
PyObject*
ddc_vbeInfo(PyObject *self, PyObject *args)
{
+ PyObject *ret;
struct vbe_info *vbe_info = NULL;
const char *vendor_name = NULL;
@@ -280,7 +281,7 @@
}
}
- return Py_BuildValue(
+ ret = Py_BuildValue(
"{s:s#," /* signature */
"s:(i,i)," /* version */
"s:s," /* oem_name */
@@ -299,6 +300,9 @@
"memory_size", vbe_info->memory_size,
"mode_list", modes
);
+
+ free(vbe_info);
+ return ret;
}
@@ -310,6 +314,7 @@
PyObject*
ddc_query(PyObject *self, PyObject *args)
{
+ PyObject *ret;
int adapter;
struct vbe_edid1_info *edid;
@@ -330,19 +335,14 @@
return Py_None;
}
- /* Some monitors cannot respond immediately. Wait for a valid EDID. */
- int i = 20;
- while (i--) {
- if (is_valid(edid))
- break;
- usleep(50);
- }
- if (i < 0 && !is_valid(edid)) {
+ if (!is_valid(edid)) {
+ free(edid);
Py_INCREF(Py_None);
return Py_None;
}
if (edid->version == 255 && edid->revision == 255) {
+ free(edid);
Py_INCREF(Py_None);
return Py_None;
}
@@ -365,7 +365,7 @@
}
}
- return Py_BuildValue(
+ ret = Py_BuildValue(
"{s:i," /* version */
"s:i," /* revision */
"s:i," /* serial_number */
@@ -406,6 +406,9 @@
"detailed_timing", get_detailed_timing_info(edid),
"eisa_id", eisa_id
);
+
+ free(edid);
+ return ret;
}
static PyMethodDef ddc_methods[] = {
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi