Le 06/04/2012 09:58, Thierry Vignaud a écrit :
On 6 April 2012 00:00,<[email protected]>  wrote:
Fix partition numbering on GPT (mga#3091)

(...)

@@ -27,9 +28,20 @@
              $p{start} = $5;
              $p{size} = $7;
          }
-        \%p;
+        $p{part_number} =>  \%p;
      } c::get_disk_partitions($hd->{file});

+    my @pt = map {
+       my $part_number = $_;
+       if ($parts{$part_number}) {
+           $parts{$part_number};
+       } else {
+           my %p;
+           $p{part_number} = $part_number;
+           \%p;

This is simpler&  more readable:

{ part_number =>  $part_number };

anyway it would be maybe simpler go one of the way I attach.
WDYT?
I like the 'simpler' adjective when I have to read this stuff at least 3 times to get an idea of what it happening... A simple comment wouldn't hurt there.

Anyway, allocating the list content in a single pass seems simpler to understand for me. I'd rather use something as:

# create an exhaustive list including %parts content if existing
# for given partition number, a default structure otherwise
my @pt = map {
        $parts{$_} ? $parts{$_} : { part_number => $_ }
    } 1..$nb_primary;

More general remarks:

What about using consistent variable names ? If you have a collection of 'something' stored in a hash, why should it suddenly became of collection of 'st' when transfering them into an array ? Or using a consistent format for variables storing numbers, rather than having both nb_foo and bar_number ?

And I don't underestand the interest of using an hash for storing content with numerical indexes only. Especially if you have to convert it to an array at the end...

--
BOFH excuse #79:

Look, buddy:  Windows 3.1 IS A General Protection Fault.

Reply via email to