Make rpmfiFSize() return rpm_loff_t type, fixup callers
authorPanu Matilainen <pmatilai@redhat.com>
Thu, 12 Jun 2008 13:41:31 +0000 (16:41 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Thu, 12 Jun 2008 13:41:31 +0000 (16:41 +0300)
- Internally file sizes are still stored as 32bit, going to 64bit wouldn't
  make much sense (would only waste memory for nothing) as long as we're
  bound by cpio's 32bit per-file limit. Being "64bit ready" for filesizes
  doesn't hurt anything though...

lib/query.c
lib/rpmfi.c
lib/rpmfi.h
lib/transaction.c
python/rpmfi-py.c

index ee99fe2..685264a 100644 (file)
@@ -135,7 +135,7 @@ int showQueryPackage(QVA_t qva, rpmts ts, Header h)
        unsigned short frdev;
        rpm_time_t fmtime;
        rpmfileState fstate;
-       rpm_off_t fsize;
+       rpm_loff_t fsize;
        const char * fn;
        const char * fuser;
        const char * fgroup;
index 93e408e..43fbf95 100644 (file)
@@ -218,9 +218,9 @@ const char * rpmfiFLink(rpmfi fi)
     return flink;
 }
 
-rpm_off_t rpmfiFSize(rpmfi fi)
+rpm_loff_t rpmfiFSize(rpmfi fi)
 {
-    rpm_off_t fsize = 0;
+    rpm_loff_t fsize = 0;
 
     if (fi != NULL && fi->i >= 0 && fi->i < fi->fc) {
        if (fi->fsizes != NULL)
index 5a81159..a96f627 100644 (file)
@@ -246,7 +246,7 @@ const char * rpmfiFLink(rpmfi fi);
  * @param fi           file info set
  * @return             current file size, 0 on invalid
  */
-rpm_off_t rpmfiFSize(rpmfi fi);
+rpm_loff_t rpmfiFSize(rpmfi fi);
 
 /** \ingroup rpmfi
  * Return current file rdev from file info set.
index c443b96..018a7dd 100644 (file)
@@ -184,7 +184,8 @@ static int handleInstInstalledFiles(const rpmts ts,
            rpmFileAction action = rpmfiDecideFate(otherFi, fi, skipMissing);
            fi->actions[fileNum] = action;
        }
-       fi->replacedSizes[fileNum] = rpmfiFSize(otherFi);
+       /* XXX watch out, replacedSizes is not rpm_loff_t (yet) */
+       fi->replacedSizes[fileNum] = (rpm_off_t) rpmfiFSize(otherFi);
     }
     ps = rpmpsFree(ps);
 
@@ -373,7 +374,7 @@ bingoFps->baseName);
 static void handleOverlappedFiles(const rpmts ts,
                const rpmte p, rpmfi fi)
 {
-    uint32_t fixupSize = 0;
+    rpm_loff_t fixupSize = 0;
     rpmps ps;
     const char * fn;
     int i, j;
index b3ef5f3..59c2e4c 100644 (file)
@@ -114,7 +114,7 @@ rpmfi_FLink(rpmfiObject * s)
 static PyObject *
 rpmfi_FSize(rpmfiObject * s)
 {
-    return Py_BuildValue("i", rpmfiFSize(s->fi));
+    return Py_BuildValue("L", rpmfiFSize(s->fi));
 }
 
 static PyObject *
@@ -180,7 +180,7 @@ rpmfi_iternext(rpmfiObject * s)
     /* If more to do, return the file tuple. */
     if (rpmfiNext(s->fi) >= 0) {
        const char * FN = rpmfiFN(s->fi);
-       int FSize = rpmfiFSize(s->fi);
+       rpm_loff_t FSize = rpmfiFSize(s->fi);
        int FMode = rpmfiFMode(s->fi);
        int FMtime = rpmfiFMtime(s->fi);
        int FFlags = rpmfiFFlags(s->fi);
@@ -198,7 +198,7 @@ rpmfi_iternext(rpmfiObject * s)
            PyTuple_SET_ITEM(result, 0, Py_None);
        } else
            PyTuple_SET_ITEM(result,  0, Py_BuildValue("s", FN));
-       PyTuple_SET_ITEM(result,  1, PyInt_FromLong(FSize));
+       PyTuple_SET_ITEM(result,  1, PyLong_FromLongLong(FSize));
        PyTuple_SET_ITEM(result,  2, PyInt_FromLong(FMode));
        PyTuple_SET_ITEM(result,  3, PyInt_FromLong(FMtime));
        PyTuple_SET_ITEM(result,  4, PyInt_FromLong(FFlags));