Explorar o código

fix(config): preserve existing path values in mapper instead of overriding with defaults

The path configuration mapper was incorrectly resetting all properties to
default values when undefined, causing existing configuration to be lost.
This change preserves the current property values and only applies defaults
for newly constructed instances, fixing the configuration persistence
behavior introduced in the recent paths refactoring.
clanker hai 1 mes
pai
achega
d43e6367c4
Modificáronse 2 ficheiros con 22 adicións e 17 borrados
  1. 6 0
      fedora-x86_64.config
  2. 16 17
      src/lib/Paths.vala

+ 6 - 0
fedora-x86_64.config

@@ -0,0 +1,6 @@
+{
+    "is_managed": false,
+    "paths": {
+        "lib": "lib64"
+    }
+}

+ 16 - 17
src/lib/Paths.vala

@@ -201,39 +201,38 @@ namespace Usm {
         }
 
         public static PropertyMapper<Paths> get_mapper() {
-            var defaults = new Paths.defaults();
             return new PropertyMapperBuilder<Paths>()
                 .map<string?>("prefix", o => o.prefix, (o, v) => o.prefix = v)
-                    .when_undefined(o => o.prefix = defaults.prefix)
+                    .when_undefined(o => o.prefix = o.prefix)
                 .map<string?>("bin", o => o.bin, (o, v) => o.bin = v)
-                    .when_undefined(o => o.bin = defaults.bin)
+                    .when_undefined(o => o.bin = o.bin)
                 .map<string?>("include", o => o.include, (o, v) => o.include = v)
-                    .when_undefined(o => o.include = defaults.include)
+                    .when_undefined(o => o.include = o.include)
                 .map<string?>("data", o => o.data, (o, v) => o.data = v)
-                    .when_undefined(o => o.data = defaults.data)
+                    .when_undefined(o => o.data = o.data)
                 .map<string?>("info", o => o.info, (o, v) => o.info = v)
-                    .when_undefined(o => o.info = defaults.info)
+                    .when_undefined(o => o.info = o.info)
                 .map<string?>("lib", o => o.lib, (o, v) => o.lib = v)
-                    .when_undefined(o => o.lib = defaults.lib)
+                    .when_undefined(o => o.lib = o.lib)
                 .map<string?>("canonlib", o => o.canonlib, (o, v) => o.canonlib = v)
-                    .when_undefined(o => o.canonlib = defaults.canonlib)
+                    .when_undefined(o => o.canonlib = o.canonlib)
                 .map<string?>("man", o => o.man, (o, v) => o.man = v)
-                    .when_undefined(o => o.man = defaults.man)
+                    .when_undefined(o => o.man = o.man)
                 .map<string?>("libexec", o => o.libexec, (o, v) => o.libexec = v)
-                    .when_undefined(o => o.libexec = defaults.libexec)
+                    .when_undefined(o => o.libexec = o.libexec)
                 .map<string?>("locale", o => o.locale, (o, v) => o.locale = v)
-                    .when_undefined(o => o.locale = defaults.locale)
+                    .when_undefined(o => o.locale = o.locale)
                 .map<string?>("localState", o => o.local_state, (o, v) => o.local_state = v)
-                    .when_undefined(o => o.local_state = defaults.local_state)
+                    .when_undefined(o => o.local_state = o.local_state)
                 .map<string?>("sbin", o => o.sbin, (o, v) => o.sbin = v)
-                    .when_undefined(o => o.sbin = defaults.sbin)
+                    .when_undefined(o => o.sbin = o.sbin)
                 .map<string?>("sharedState", o => o.shared_state, (o, v) => o.shared_state = v)
-                    .when_undefined(o => o.shared_state = defaults.shared_state)
+                    .when_undefined(o => o.shared_state = o.shared_state)
                 .map<string?>("sysConfig", o => o.sys_config, (o, v) => o.sys_config = v)
-                    .when_undefined(o => o.sys_config = defaults.sys_config)
+                    .when_undefined(o => o.sys_config = o.sys_config)
                 .map<string?>("tags", o => o.tags, (o, v) => o.tags = v)
-                    .when_undefined(o => o.tags = defaults.tags)
-                .set_constructor(() => new Paths.empty())
+                    .when_undefined(o => o.tags = o.tags)
+                .set_constructor(() => new Paths.defaults())
                 .build();
         }
     }