]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: don't re-allocate range string in Ask API
authorKarel Zak <kzak@redhat.com>
Thu, 9 May 2013 11:19:58 +0000 (13:19 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 9 May 2013 11:20:35 +0000 (13:20 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
libfdisk/src/ask.c
libfdisk/src/fdiskP.h

index cdb4d0124184608d64f4eed8f01f7fce5e186d94..1b4791af36e1b6a8b14d0be26e51d54c28c54a3e 100644 (file)
@@ -13,15 +13,6 @@ void fdisk_reset_ask(struct fdisk_ask *ask)
        assert(ask);
        free(ask->query);
 
-       switch (ask->type) {
-       case FDISK_ASKTYPE_OFFSET:
-       case FDISK_ASKTYPE_NUMBER:
-               free(ask->data.num.range);
-               break;
-       default:
-               break;
-       }
-
        memset(ask, 0, sizeof(*ask));
 }
 
@@ -90,7 +81,9 @@ const char *fdisk_ask_number_get_range(struct fdisk_ask *ask)
 int fdisk_ask_number_set_range(struct fdisk_ask *ask, const char *range)
 {
        assert(ask);
-       return !strdup_to_struct_member(ask, data.num.range, range) ? -ENOMEM : 0;
+       assert(is_number_ask(ask));
+       ask->data.num.range = range;
+       return 0;
 }
 
 uint64_t fdisk_ask_number_get_default(struct fdisk_ask *ask)
index ce42860d9b0cf35ea53a015e90b84c9b10dfa33e..541b753966612ecc595b3ef159b398bb7b8fb0e3 100644 (file)
@@ -225,7 +225,7 @@ struct fdisk_ask {
                        uint64_t        result;
                        uint64_t        base;           /* for relative results */
                        uint64_t        unit;           /* unit for offsets */
-                       char            *range;         /* by library generated list */
+                       const char      *range;         /* by library generated list */
                        unsigned int    relative:1;
                } num;
                /* FDISK_ASKTYPE_{WARN,WARNX,..} */