<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>rpm: python/rpmmi-py.c Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.7 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul></div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div> <h1>python/rpmmi-py.c</h1><a href="rpmmi-py_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <a name="l00005"></a>00005 <span class="preprocessor">#include "<a class="code" href="system_8h.html">system.h</a>"</span> <a name="l00006"></a>00006 <a name="l00007"></a>00007 <span class="preprocessor">#include <<a class="code" href="rpmlib_8h.html">rpmlib.h</a>></span> <a name="l00008"></a>00008 <span class="preprocessor">#include <<a class="code" href="rpmdb_8h.html">rpmdb.h</a>></span> <a name="l00009"></a>00009 <a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="rpmmi-py_8h.html">rpmmi-py.h</a>"</span> <a name="l00011"></a>00011 <span class="preprocessor">#include "<a class="code" href="header-py_8h.html">header-py.h</a>"</span> <a name="l00012"></a>00012 <a name="l00013"></a>00013 <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span> <a name="l00014"></a>00014 <a name="l00068"></a>00068 <a name="l00071"></a>00071 <span class="keyword">static</span> PyObject * <a name="l00072"></a><a class="code" href="rpmmi-py_8c.html#d186f2f60de592987fc5ccb0a2a7a8e3">00072</a> <a class="code" href="rpmmi-py_8c.html#d186f2f60de592987fc5ccb0a2a7a8e3">rpmmi_iter</a>(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * s) <a name="l00073"></a>00073 <span class="comment">/*@*/</span> <a name="l00074"></a>00074 { <a name="l00075"></a>00075 Py_INCREF(s); <a name="l00076"></a>00076 <span class="keywordflow">return</span> (PyObject *)s; <a name="l00077"></a>00077 } <a name="l00078"></a>00078 <a name="l00081"></a>00081 <span class="comment">/*@null@*/</span> <a name="l00082"></a>00082 <span class="keyword">static</span> PyObject * <a name="l00083"></a><a class="code" href="rpmmi-py_8c.html#b6b84c38168c8b3fd18d8c05dc13dc17">00083</a> <a class="code" href="rpmmi-py_8c.html#b6b84c38168c8b3fd18d8c05dc13dc17">rpmmi_iternext</a>(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * s) <a name="l00084"></a>00084 <span class="comment">/*@globals rpmGlobalMacroContext @*/</span> <a name="l00085"></a>00085 <span class="comment">/*@modifies s, rpmGlobalMacroContext @*/</span> <a name="l00086"></a>00086 { <a name="l00087"></a>00087 <a class="code" href="structheaderToken__s.html">Header</a> h; <a name="l00088"></a>00088 <a name="l00089"></a>00089 <span class="keywordflow">if</span> (s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a> == NULL || (h = <a class="code" href="group__rpmdb.html#ga20413aa4018cf32e700decc7dba83f3">rpmdbNextIterator</a>(s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a>)) == NULL) { <a name="l00090"></a>00090 s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a> = <a class="code" href="group__rpmdb.html#g7d328106a65ab43bbef20b9897e463a4">rpmdbFreeIterator</a>(s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a>); <a name="l00091"></a>00091 <span class="keywordflow">return</span> NULL; <a name="l00092"></a>00092 } <a name="l00093"></a>00093 <span class="keywordflow">return</span> (PyObject *) <a class="code" href="header-py_8c.html#71d48c657da35e420f5323c0ff8f8711">hdr_Wrap</a>(h); <a name="l00094"></a>00094 } <a name="l00095"></a>00095 <a name="l00098"></a>00098 <span class="comment">/*@null@*/</span> <a name="l00099"></a>00099 <span class="keyword">static</span> PyObject * <a name="l00100"></a><a class="code" href="rpmmi-py_8c.html#ff3130489f54f303e195068ff5804843">00100</a> <a class="code" href="rpmmi-py_8c.html#ff3130489f54f303e195068ff5804843">rpmmi_Next</a>(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * s) <a name="l00101"></a>00101 <span class="comment">/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/</span> <a name="l00102"></a>00102 <span class="comment">/*@modifies s, rpmGlobalMacroContext, _Py_NoneStruct @*/</span> <a name="l00103"></a>00103 { <a name="l00104"></a>00104 PyObject * result; <a name="l00105"></a>00105 <a name="l00106"></a>00106 result = <a class="code" href="rpmmi-py_8c.html#b6b84c38168c8b3fd18d8c05dc13dc17">rpmmi_iternext</a>(s); <a name="l00107"></a>00107 <a name="l00108"></a>00108 <span class="keywordflow">if</span> (result == NULL) { <a name="l00109"></a>00109 Py_INCREF(Py_None); <a name="l00110"></a>00110 <span class="keywordflow">return</span> Py_None; <a name="l00111"></a>00111 } <a name="l00112"></a>00112 <span class="keywordflow">return</span> result; <a name="l00113"></a>00113 } <a name="l00114"></a>00114 <a name="l00117"></a>00117 <span class="comment">/*@null@*/</span> <a name="l00118"></a>00118 <span class="keyword">static</span> PyObject * <a name="l00119"></a><a class="code" href="rpmmi-py_8c.html#7b1021341b68814a084f8f556a20f156">00119</a> <a class="code" href="rpmmi-py_8c.html#7b1021341b68814a084f8f556a20f156">rpmmi_Instance</a>(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * s) <a name="l00120"></a>00120 <span class="comment">/*@*/</span> <a name="l00121"></a>00121 { <a name="l00122"></a>00122 <span class="keywordtype">int</span> rc = 0; <a name="l00123"></a>00123 <a name="l00124"></a>00124 <span class="keywordflow">if</span> (s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a> != NULL) <a name="l00125"></a>00125 rc = <a class="code" href="group__rpmdb.html#g4fefb65ede996aa0edcc80286ca640d1">rpmdbGetIteratorOffset</a>(s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a>); <a name="l00126"></a>00126 <a name="l00127"></a>00127 <span class="keywordflow">return</span> Py_BuildValue(<span class="stringliteral">"i"</span>, rc); <a name="l00128"></a>00128 } <a name="l00129"></a>00129 <a name="l00132"></a>00132 <span class="comment">/*@null@*/</span> <a name="l00133"></a>00133 <span class="keyword">static</span> PyObject * <a name="l00134"></a><a class="code" href="rpmmi-py_8c.html#215fb6fcb8749557736757f192488e5b">00134</a> <a class="code" href="rpmmi-py_8c.html#215fb6fcb8749557736757f192488e5b">rpmmi_Count</a>(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * s) <a name="l00135"></a>00135 <span class="comment">/*@*/</span> <a name="l00136"></a>00136 { <a name="l00137"></a>00137 <span class="keywordtype">int</span> rc = 0; <a name="l00138"></a>00138 <a name="l00139"></a>00139 <span class="keywordflow">if</span> (s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a> != NULL) <a name="l00140"></a>00140 rc = <a class="code" href="group__rpmdb.html#g0b2fac12a598a46a3f0780fab05839a0">rpmdbGetIteratorCount</a>(s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a>); <a name="l00141"></a>00141 <a name="l00142"></a>00142 <span class="keywordflow">return</span> Py_BuildValue(<span class="stringliteral">"i"</span>, rc); <a name="l00143"></a>00143 } <a name="l00144"></a>00144 <a name="l00147"></a>00147 <span class="comment">/*@null@*/</span> <a name="l00148"></a>00148 <span class="keyword">static</span> PyObject * <a name="l00149"></a><a class="code" href="rpmmi-py_8c.html#924e8dbed9a53c9f5cbb7c58d54d970f">00149</a> <a class="code" href="rpmmi-py_8c.html#924e8dbed9a53c9f5cbb7c58d54d970f">rpmmi_Pattern</a>(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * s, PyObject * args, PyObject * kwds) <a name="l00150"></a>00150 <span class="comment">/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/</span> <a name="l00151"></a>00151 <span class="comment">/*@modifies s, rpmGlobalMacroContext, _Py_NoneStruct @*/</span> <a name="l00152"></a>00152 { <a name="l00153"></a>00153 PyObject *TagN = NULL; <a name="l00154"></a>00154 <span class="keywordtype">int</span> type; <a name="l00155"></a>00155 <span class="keywordtype">char</span> * pattern; <a name="l00156"></a>00156 <a class="code" href="rpmlib_8h.html#d0da081a8aa5491edae4ad732d03c2f3">rpmTag</a> tag; <a name="l00157"></a>00157 <span class="keywordtype">char</span> * kwlist[] = {<span class="stringliteral">"tag"</span>, <span class="stringliteral">"type"</span>, <span class="stringliteral">"patern"</span>, NULL}; <a name="l00158"></a>00158 <a name="l00159"></a>00159 <span class="keywordflow">if</span> (!PyArg_ParseTupleAndKeywords(args, kwds, <span class="stringliteral">"Ois:Pattern"</span>, kwlist, <a name="l00160"></a>00160 &TagN, &type, &pattern)) <a name="l00161"></a>00161 <span class="keywordflow">return</span> NULL; <a name="l00162"></a>00162 <a name="l00163"></a>00163 <span class="keywordflow">if</span> ((tag = <a class="code" href="group__py__c.html#gacaa9f58984ea99fb8d4737578a1aab8">tagNumFromPyObject</a> (TagN)) == -1) { <a name="l00164"></a>00164 PyErr_SetString(PyExc_TypeError, <span class="stringliteral">"unknown tag type"</span>); <a name="l00165"></a>00165 <span class="keywordflow">return</span> NULL; <a name="l00166"></a>00166 } <a name="l00167"></a>00167 <a name="l00168"></a>00168 <a class="code" href="group__rpmdb.html#g8a31a5d7e8f728784d6cf52b620bf818">rpmdbSetIteratorRE</a>(s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a>, tag, type, pattern); <a name="l00169"></a>00169 <a name="l00170"></a>00170 Py_INCREF (Py_None); <a name="l00171"></a>00171 <span class="keywordflow">return</span> Py_None; <a name="l00172"></a>00172 <a name="l00173"></a>00173 } <a name="l00174"></a>00174 <a name="l00177"></a>00177 <span class="comment">/*@-fullinitblock@*/</span> <a name="l00178"></a>00178 <span class="comment">/*@unchecked@*/</span> <span class="comment">/*@observer@*/</span> <a name="l00179"></a><a class="code" href="group__py__c.html#g878ebb7c07631b1b0d66abe1f1e2f7ca">00179</a> <span class="keyword">static</span> <span class="keyword">struct </span>PyMethodDef <a class="code" href="group__py__c.html#g878ebb7c07631b1b0d66abe1f1e2f7ca">rpmmi_methods</a>[] = { <a name="l00180"></a>00180 {<span class="stringliteral">"next"</span>, (PyCFunction) <a class="code" href="rpmmi-py_8c.html#ff3130489f54f303e195068ff5804843">rpmmi_Next</a>, METH_NOARGS, <a name="l00181"></a>00181 <span class="stringliteral">"mi.next() -> hdr\n\</span> <a name="l00182"></a>00182 <span class="stringliteral">- Retrieve next header that matches. Iterate directly in python if possible.\n"</span> }, <a name="l00183"></a>00183 {<span class="stringliteral">"instance"</span>, (PyCFunction) <a class="code" href="rpmmi-py_8c.html#7b1021341b68814a084f8f556a20f156">rpmmi_Instance</a>, METH_NOARGS, <a name="l00184"></a>00184 NULL }, <a name="l00185"></a>00185 {<span class="stringliteral">"count"</span>, (PyCFunction) <a class="code" href="rpmmi-py_8c.html#215fb6fcb8749557736757f192488e5b">rpmmi_Count</a>, METH_NOARGS, <a name="l00186"></a>00186 NULL }, <a name="l00187"></a>00187 {<span class="stringliteral">"pattern"</span>, (PyCFunction) <a class="code" href="rpmmi-py_8c.html#924e8dbed9a53c9f5cbb7c58d54d970f">rpmmi_Pattern</a>, METH_VARARGS|METH_KEYWORDS, <a name="l00188"></a>00188 <span class="stringliteral">"mi.pattern(TagN, mire_type, pattern)\n\</span> <a name="l00189"></a>00189 <span class="stringliteral">- Set a secondary match pattern on tags from retrieved header.\n"</span> }, <a name="l00190"></a>00190 {NULL, NULL} <span class="comment">/* sentinel */</span> <a name="l00191"></a>00191 }; <a name="l00192"></a>00192 <span class="comment">/*@=fullinitblock@*/</span> <a name="l00193"></a>00193 <a name="l00196"></a><a class="code" href="group__py__c.html#gbbc5a8a7720abd79e88e497b2563fb4e">00196</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__py__c.html#gbbc5a8a7720abd79e88e497b2563fb4e">rpmmi_dealloc</a>(<span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span> <a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * s) <a name="l00197"></a>00197 <span class="comment">/*@globals rpmGlobalMacroContext @*/</span> <a name="l00198"></a>00198 <span class="comment">/*@modifies s, rpmGlobalMacroContext @*/</span> <a name="l00199"></a>00199 { <a name="l00200"></a>00200 <span class="keywordflow">if</span> (s) { <a name="l00201"></a>00201 s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a> = <a class="code" href="group__rpmdb.html#g7d328106a65ab43bbef20b9897e463a4">rpmdbFreeIterator</a>(s-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a>); <a name="l00202"></a>00202 Py_DECREF(s-><a class="code" href="structrpmmiObject__s.html#06d1ee463dfb0b4ca86b968ae253f4e7">ref</a>); <a name="l00203"></a>00203 PyObject_Del(s); <a name="l00204"></a>00204 } <a name="l00205"></a>00205 } <a name="l00206"></a>00206 <a name="l00207"></a><a class="code" href="rpmmi-py_8c.html#b15bc2fd733937612b867496ddd0a2db">00207</a> <span class="keyword">static</span> PyObject * <a class="code" href="rpmmi-py_8c.html#b15bc2fd733937612b867496ddd0a2db">rpmmi_getattro</a>(PyObject * o, PyObject * n) <a name="l00208"></a>00208 <span class="comment">/*@*/</span> <a name="l00209"></a>00209 { <a name="l00210"></a>00210 <span class="keywordflow">return</span> PyObject_GenericGetAttr(o, n); <a name="l00211"></a>00211 } <a name="l00212"></a>00212 <a name="l00213"></a><a class="code" href="rpmmi-py_8c.html#a1c3406c2ae5bc0abf38a139932f9e7c">00213</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="rpmmi-py_8c.html#a1c3406c2ae5bc0abf38a139932f9e7c">rpmmi_setattro</a>(PyObject * o, PyObject * n, PyObject * v) <a name="l00214"></a>00214 <span class="comment">/*@*/</span> <a name="l00215"></a>00215 { <a name="l00216"></a>00216 <span class="keywordflow">return</span> PyObject_GenericSetAttr(o, n, v); <a name="l00217"></a>00217 } <a name="l00218"></a>00218 <a name="l00221"></a>00221 <span class="comment">/*@unchecked@*/</span> <span class="comment">/*@observer@*/</span> <a name="l00222"></a><a class="code" href="rpmmi-py_8c.html#8541843d62f718fbfff0458a9b9051d0">00222</a> <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="rpmmi-py_8c.html#8541843d62f718fbfff0458a9b9051d0">rpmmi_doc</a>[] = <a name="l00223"></a>00223 <span class="stringliteral">""</span>; <a name="l00224"></a>00224 <a name="l00227"></a>00227 <span class="comment">/*@-fullinitblock@*/</span> <a name="l00228"></a><a class="code" href="group__py__c.html#ge62457121feda3f86dab2e9457fbd12f">00228</a> PyTypeObject <a class="code" href="group__py__c.html#ge62457121feda3f86dab2e9457fbd12f">rpmmi_Type</a> = { <a name="l00229"></a>00229 PyObject_HEAD_INIT(&PyType_Type) <a name="l00230"></a>00230 0, <span class="comment">/* ob_size */</span> <a name="l00231"></a>00231 <span class="stringliteral">"rpm.mi"</span>, <span class="comment">/* tp_name */</span> <a name="l00232"></a>00232 <span class="keyword">sizeof</span>(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a>), <span class="comment">/* tp_size */</span> <a name="l00233"></a>00233 0, <span class="comment">/* tp_itemsize */</span> <a name="l00234"></a>00234 (destructor) <a class="code" href="group__py__c.html#gbbc5a8a7720abd79e88e497b2563fb4e">rpmmi_dealloc</a>, <span class="comment">/* tp_dealloc */</span> <a name="l00235"></a>00235 0, <span class="comment">/* tp_print */</span> <a name="l00236"></a>00236 (getattrfunc)0, <span class="comment">/* tp_getattr */</span> <a name="l00237"></a>00237 0, <span class="comment">/* tp_setattr */</span> <a name="l00238"></a>00238 0, <span class="comment">/* tp_compare */</span> <a name="l00239"></a>00239 0, <span class="comment">/* tp_repr */</span> <a name="l00240"></a>00240 0, <span class="comment">/* tp_as_number */</span> <a name="l00241"></a>00241 0, <span class="comment">/* tp_as_sequence */</span> <a name="l00242"></a>00242 0, <span class="comment">/* tp_as_mapping */</span> <a name="l00243"></a>00243 0, <span class="comment">/* tp_hash */</span> <a name="l00244"></a>00244 0, <span class="comment">/* tp_call */</span> <a name="l00245"></a>00245 0, <span class="comment">/* tp_str */</span> <a name="l00246"></a>00246 (getattrofunc) <a class="code" href="rpmmi-py_8c.html#b15bc2fd733937612b867496ddd0a2db">rpmmi_getattro</a>, <span class="comment">/* tp_getattro */</span> <a name="l00247"></a>00247 (setattrofunc) <a class="code" href="rpmmi-py_8c.html#a1c3406c2ae5bc0abf38a139932f9e7c">rpmmi_setattro</a>, <span class="comment">/* tp_setattro */</span> <a name="l00248"></a>00248 0, <span class="comment">/* tp_as_buffer */</span> <a name="l00249"></a>00249 Py_TPFLAGS_DEFAULT, <span class="comment">/* tp_flags */</span> <a name="l00250"></a>00250 rpmmi_doc, <span class="comment">/* tp_doc */</span> <a name="l00251"></a>00251 #<span class="keywordflow">if</span> Py_TPFLAGS_HAVE_ITER <a name="l00252"></a>00252 0, <span class="comment">/* tp_traverse */</span> <a name="l00253"></a>00253 0, <span class="comment">/* tp_clear */</span> <a name="l00254"></a>00254 0, <span class="comment">/* tp_richcompare */</span> <a name="l00255"></a>00255 0, <span class="comment">/* tp_weaklistoffset */</span> <a name="l00256"></a>00256 (getiterfunc) <a class="code" href="rpmmi-py_8c.html#d186f2f60de592987fc5ccb0a2a7a8e3">rpmmi_iter</a>, <span class="comment">/* tp_iter */</span> <a name="l00257"></a>00257 (iternextfunc) <a class="code" href="rpmmi-py_8c.html#b6b84c38168c8b3fd18d8c05dc13dc17">rpmmi_iternext</a>, <span class="comment">/* tp_iternext */</span> <a name="l00258"></a>00258 <a class="code" href="group__py__c.html#g878ebb7c07631b1b0d66abe1f1e2f7ca">rpmmi_methods</a>, <span class="comment">/* tp_methods */</span> <a name="l00259"></a>00259 0, <span class="comment">/* tp_members */</span> <a name="l00260"></a>00260 0, <span class="comment">/* tp_getset */</span> <a name="l00261"></a>00261 0, <span class="comment">/* tp_base */</span> <a name="l00262"></a>00262 0, <span class="comment">/* tp_dict */</span> <a name="l00263"></a>00263 0, <span class="comment">/* tp_descr_get */</span> <a name="l00264"></a>00264 0, <span class="comment">/* tp_descr_set */</span> <a name="l00265"></a>00265 0, <span class="comment">/* tp_dictoffset */</span> <a name="l00266"></a>00266 0, <span class="comment">/* tp_init */</span> <a name="l00267"></a>00267 0, <span class="comment">/* tp_alloc */</span> <a name="l00268"></a>00268 0, <span class="comment">/* tp_new */</span> <a name="l00269"></a>00269 0, <span class="comment">/* tp_free */</span> <a name="l00270"></a>00270 0, <span class="comment">/* tp_is_gc */</span> <a name="l00271"></a>00271 #endif <a name="l00272"></a>00272 }; <a name="l00273"></a>00273 <span class="comment">/*@=fullinitblock@*/</span> <a name="l00274"></a>00274 <a name="l00275"></a><a class="code" href="rpmmi-py_8h.html#211cb25e1e77277e59d72a8b17934559">00275</a> <a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * <a class="code" href="rpmmi-py_8c.html#211cb25e1e77277e59d72a8b17934559">rpmmi_Wrap</a>(<a class="code" href="struct__rpmdbMatchIterator.html">rpmdbMatchIterator</a> mi, PyObject *s) <a name="l00276"></a>00276 { <a name="l00277"></a>00277 <a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> * mio = (<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a> *) PyObject_New(<a class="code" href="structrpmmiObject__s.html">rpmmiObject</a>, &rpmmi_Type); <a name="l00278"></a>00278 <a name="l00279"></a>00279 <span class="keywordflow">if</span> (mio == NULL) { <a name="l00280"></a>00280 PyErr_SetString(<a class="code" href="group__py__c.html#ga57c13802038ec31a74eec299d8bb44e">pyrpmError</a>, <span class="stringliteral">"out of memory creating rpmmiObject"</span>); <a name="l00281"></a>00281 <span class="keywordflow">return</span> NULL; <a name="l00282"></a>00282 } <a name="l00283"></a>00283 mio-><a class="code" href="structrpmmiObject__s.html#e9c1015d4946ef590fb52d2a7e2f634d">mi</a> = mi; <a name="l00284"></a>00284 mio-><a class="code" href="structrpmmiObject__s.html#06d1ee463dfb0b4ca86b968ae253f4e7">ref</a> = s; <a name="l00285"></a>00285 Py_INCREF(mio-><a class="code" href="structrpmmiObject__s.html#06d1ee463dfb0b4ca86b968ae253f4e7">ref</a>); <a name="l00286"></a>00286 <span class="keywordflow">return</span> mio; <a name="l00287"></a>00287 } <a name="l00288"></a>00288 </pre></div><hr size="1"><address style="align: right;"><small>Generated on 1 Oct 2013 for rpm by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address> </body> </html>