a few tests on corner cases, but the logic is too hard to get all of them, either:

capacity 1 gB wrong, actually 2 gB, deduced from 2x1gB sticks found, OR
capacity 4 gB right, but 2 x 1 4gB stick found gives 8, which is wrong.
This commit is contained in:
inxi-svn 2014-08-14 05:26:04 +00:00
parent 8da1e3bfd8
commit 38d88507da

13
inxi
View file

@ -3,7 +3,7 @@
#### Script Name: inxi #### Script Name: inxi
#### Version: 2.1.95 #### Version: 2.1.95
#### Date: 2014-08-13 #### Date: 2014-08-13
#### Patch Number: 02 #### Patch Number: 03
######################################################################## ########################################################################
#### SPECIAL THANKS #### SPECIAL THANKS
######################################################################## ########################################################################
@ -8391,8 +8391,15 @@ get_ram_data()
aMaxModuleSize[m]=int(aMaxModuleSize[m]) aMaxModuleSize[m]=int(aMaxModuleSize[m])
} }
# note: some cases memory capacity == max module size, so one stick will fill it # note: some cases memory capacity == max module size, so one stick will fill it
if (a_memory[j,3] != "" && aFoundModules[m] != 0 ) { # but I think only with cases of 2 slots does this happen, so if > 2, use the count of slots.
if ( a_memory[j,3] < aDerivedModuleSize[m] * aFoundModules[m] ) { if (a_memory[j,3] != "" && ( aFoundModules[m] != 0 || a_memory[j,4] != "" ) ) {
# not using this logic for now, too complicated and will not always work, grr.
# so use just count x biggest module found
if ( ( a_memory[j,4] > 1 ) && ( a_memory[j,3] < aDerivedModuleSize[m] * a_memory[j,4] ) ) {
a_memory[j,3] = aDerivedModuleSize[m] * a_memory[j,4]
estCap=" (est)"
}
else if ( ( aFoundModules[m] > 0 ) && ( a_memory[j,3] < aDerivedModuleSize[m] * aFoundModules[m] ) ) {
a_memory[j,3] = aDerivedModuleSize[m] * aFoundModules[m] a_memory[j,3] = aDerivedModuleSize[m] * aFoundModules[m]
estCap=" (est)" estCap=" (est)"
} }