RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 15-Oct-2007 01:11:08
Branch: HEAD Handle: 2007101500110701
Modified files:
rpm CHANGES
rpm/python header-py.c
Log:
- ditto for python/* too.
Summary:
Revision Changes Path
1.1708 +1 -0 rpm/CHANGES
1.61 +34 -23 rpm/python/header-py.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1707 -r1.1708 CHANGES
--- rpm/CHANGES 14 Oct 2007 22:53:56 -0000 1.1707
+++ rpm/CHANGES 14 Oct 2007 23:11:07 -0000 1.1708
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: ditto for python/* too.
- jbj: for now, revert to headerGetEntry where needed, avoid recursions.
- jbj: drill HE_t down through the header extension tags.
- jbj: drill rpmTagType everywhere.
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/header-py.c
============================================================================
$ cvs diff -u -r1.60 -r1.61 header-py.c
--- rpm/python/header-py.c 14 Oct 2007 18:50:24 -0000 1.60
+++ rpm/python/header-py.c 14 Oct 2007 23:11:08 -0000 1.61
@@ -172,7 +172,7 @@
/*@modifies h @*/
{
HGE_t hge = (HGE_t)headerGetExtension;
- int_32 he_t = 0;
+ rpmTagType he_t = 0;
hRET_t he_p = { .ptr = NULL };
int_32 he_c = 0;
HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
@@ -206,7 +206,7 @@
/*@modifies h @*/
{
HGE_t hge = (HGE_t)headerGetExtension;
- int_32 he_t = 0;
+ rpmTagType he_t = 0;
hRET_t he_p = { .ptr = NULL };
int_32 he_c = 0;
HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
@@ -308,7 +308,7 @@
/*@*/
{
HGE_t hge = (HGE_t)headerGetExtension;
- int_32 he_t = 0;
+ rpmTagType he_t = 0;
hRET_t he_p = { .ptr = NULL };
int_32 he_c = 0;
HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
@@ -340,7 +340,7 @@
static void providePackageNVR(Header h)
{
HGE_t hge = (HGE_t)headerGetExtension;
- int_32 he_t = 0;
+ rpmTagType he_t = 0;
hRET_t he_p = { .ptr = NULL };
int_32 he_c = 0;
HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
@@ -447,7 +447,8 @@
{
PyObject * list, *o;
HeaderIterator hi;
- int tag, type;
+ int_32 tag;
+ rpmTagType type;
list = PyList_New(0);
@@ -697,7 +698,7 @@
/*@modifies *type, *p, *c @*/
{
HGE_t hge = (HGE_t)headerGetExtension;
- int_32 he_t = 0;
+ rpmTagType he_t = 0;
hRET_t he_p = { .ptr = NULL };
int_32 he_c = 0;
HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
@@ -753,8 +754,14 @@
static PyObject * hdr_subscript(hdrObject * s, PyObject * item)
/*@*/
{
- int type, count, i, tag = -1;
+ rpmTagType he_t = 0;
+ hRET_t he_p = { .ptr = NULL };
+ int_32 he_c = 0;
+ HE_s he_s = { .tag = 0, .t = &he_t, .p = &he_p, .c = &he_c, .freeData = 0 };
+ HE_t he = &he_s;
+ int_32 tag = -1;
void * data;
+ int i;
PyObject * o, * metao;
char ** stringArray;
int forceArray = 0;
@@ -784,14 +791,16 @@
/* Retrieve data from extension or header. */
if (ext) {
- ext->u.tagFunction(s->h, &type, (const void **) &data, &count, &freeData);
+ he->p = (hRET_t *)&data;
+ ext->u.tagFunction(s->h, he);
+ freeData = he->freeData;
} else {
if (tag == -1) {
PyErr_SetString(PyExc_KeyError, "unknown header tag");
return NULL;
}
- if (!rpmHeaderGetEntry(s->h, tag, &type, &data, &count)) {
+ if (!rpmHeaderGetEntry(s->h, tag, &he_t, &data, &he_c)) {
switch (tag) {
case RPMTAG_EPOCH:
case RPMTAG_NAME:
@@ -851,17 +860,17 @@
break;
}
- switch (type) {
+ switch (he_t) {
case RPM_OPENPGP_TYPE:
case RPM_ASN1_TYPE:
case RPM_BIN_TYPE:
- o = PyString_FromStringAndSize(data, count);
+ o = PyString_FromStringAndSize(data, he_c);
break;
case RPM_INT64_TYPE:
- if (count != 1 || forceArray) {
+ if (he_c != 1 || forceArray) {
metao = PyList_New(0);
- for (i = 0; i < count; i++) {
+ for (i = 0; i < he_c; i++) {
o = PyInt_FromLong(((long long *) data)[i]);
PyList_Append(metao, o);
Py_DECREF(o);
@@ -872,9 +881,9 @@
}
break;
case RPM_INT32_TYPE:
- if (count != 1 || forceArray) {
+ if (he_c != 1 || forceArray) {
metao = PyList_New(0);
- for (i = 0; i < count; i++) {
+ for (i = 0; i < he_c; i++) {
o = PyInt_FromLong(((int *) data)[i]);
PyList_Append(metao, o);
Py_DECREF(o);
@@ -887,9 +896,9 @@
case RPM_CHAR_TYPE:
case RPM_INT8_TYPE:
- if (count != 1 || forceArray) {
+ if (he_c != 1 || forceArray) {
metao = PyList_New(0);
- for (i = 0; i < count; i++) {
+ for (i = 0; i < he_c; i++) {
o = PyInt_FromLong(((char *) data)[i]);
PyList_Append(metao, o);
Py_DECREF(o);
@@ -901,9 +910,9 @@
break;
case RPM_INT16_TYPE:
- if (count != 1 || forceArray) {
+ if (he_c != 1 || forceArray) {
metao = PyList_New(0);
- for (i = 0; i < count; i++) {
+ for (i = 0; i < he_c; i++) {
o = PyInt_FromLong(((short *) data)[i]);
PyList_Append(metao, o);
Py_DECREF(o);
@@ -918,7 +927,7 @@
stringArray = data;
metao = PyList_New(0);
- for (i = 0; i < count; i++) {
+ for (i = 0; i < he_c; i++) {
o = PyString_FromString(stringArray[i]);
PyList_Append(metao, o);
Py_DECREF(o);
@@ -928,11 +937,11 @@
break;
case RPM_STRING_TYPE:
- if (count != 1 || forceArray) {
+ if (he_c != 1 || forceArray) {
stringArray = data;
metao = PyList_New(0);
- for (i=0; i < count; i++) {
+ for (i=0; i < he_c; i++) {
o = PyString_FromString(stringArray[i]);
PyList_Append(metao, o);
Py_DECREF(o);
@@ -1180,7 +1189,9 @@
int_32 * oldMatch;
hdrObject * hdr;
int count = 0;
- int type, c, tag;
+ int_32 tag;
+ rpmTagType type;
+ int_32 c;
void * p;
Py_BEGIN_ALLOW_THREADS
@@ .
Received on Mon Oct 15 01:11:08 2007