Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6f3fceb

Browse files
committed
Allow None as TimeBase value in TimeValue records (becomes NULL in C structure,
used for delta-t values by quicktime).
1 parent bf32583 commit 6f3fceb

2 files changed

Lines changed: 26 additions & 10 deletions

File tree

Mac/Modules/qt/Qtmodule.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,20 +71,28 @@ static PyObject *
7171
QtTimeRecord_New(itself)
7272
TimeRecord *itself;
7373
{
74-
75-
return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale,
74+
if (itself->base)
75+
return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale,
7676
TimeBaseObj_New, itself->base);
77+
else
78+
return Py_BuildValue("O&lO", PyMac_Buildwide, &itself->value, itself->scale,
79+
Py_None);
7780
}
7881

7982
static int
8083
QtTimeRecord_Convert(v, p_itself)
8184
PyObject *v;
8285
TimeRecord *p_itself;
8386
{
84-
85-
if( !PyArg_ParseTuple(v, "O&lO&", PyMac_Getwide, &p_itself->value, &p_itself->scale,
86-
TimeBaseObj_Convert, &p_itself->base) )
87+
PyObject *base = NULL;
88+
if( !PyArg_ParseTuple(v, "O&l|O", PyMac_Getwide, &p_itself->value, &p_itself->scale,
89+
&base) )
8790
return 0;
91+
if ( base == NULL || base == Py_None )
92+
p_itself->base = NULL;
93+
else
94+
if ( !TimeBaseObj_Convert(base, &p_itself->base) )
95+
return 0;
8896
return 1;
8997
}
9098

Mac/Modules/qt/qtsupport.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,28 @@
5353
QtTimeRecord_New(itself)
5454
TimeRecord *itself;
5555
{
56-
57-
return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale,
56+
if (itself->base)
57+
return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale,
5858
TimeBaseObj_New, itself->base);
59+
else
60+
return Py_BuildValue("O&lO", PyMac_Buildwide, &itself->value, itself->scale,
61+
Py_None);
5962
}
6063
6164
static int
6265
QtTimeRecord_Convert(v, p_itself)
6366
PyObject *v;
6467
TimeRecord *p_itself;
6568
{
66-
67-
if( !PyArg_ParseTuple(v, "O&lO&", PyMac_Getwide, &p_itself->value, &p_itself->scale,
68-
TimeBaseObj_Convert, &p_itself->base) )
69+
PyObject *base = NULL;
70+
if( !PyArg_ParseTuple(v, "O&l|O", PyMac_Getwide, &p_itself->value, &p_itself->scale,
71+
&base) )
6972
return 0;
73+
if ( base == NULL || base == Py_None )
74+
p_itself->base = NULL;
75+
else
76+
if ( !TimeBaseObj_Convert(base, &p_itself->base) )
77+
return 0;
7078
return 1;
7179
}
7280

0 commit comments

Comments
 (0)