| Filename | /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer/windows/property.pm |
| Statements | Executed 101599 statements in 390ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 109 | 1 | 1 | 205ms | 423ms | installer::windows::property::update_property_table |
| 109 | 1 | 1 | 54.7ms | 166ms | installer::windows::property::set_codes_in_property_table |
| 67798 | 12 | 1 | 48.6ms | 48.6ms | installer::windows::property::CORE:subst (opcode) |
| 109 | 1 | 1 | 43.7ms | 48.4ms | installer::windows::property::set_important_properties |
| 15042 | 2 | 1 | 8.41ms | 8.41ms | installer::windows::property::CORE:match (opcode) |
| 109 | 1 | 1 | 7.19ms | 127ms | installer::windows::property::set_languages_in_property_table |
| 109 | 1 | 1 | 3.91ms | 16.0ms | installer::windows::property::get_arpcomments_for_property_table |
| 109 | 1 | 1 | 3.65ms | 3.65ms | installer::windows::property::set_ms_file_types_properties |
| 109 | 1 | 1 | 2.79ms | 3.47ms | installer::windows::property::get_productname_for_property_table |
| 109 | 1 | 1 | 1.74ms | 2.15ms | installer::windows::property::get_quickstarterlinkname_for_property_table |
| 109 | 1 | 1 | 1.34ms | 2.69ms | installer::windows::property::get_productlanguage_for_property_table |
| 218 | 2 | 1 | 1.08ms | 1.08ms | installer::windows::property::get_productname |
| 109 | 1 | 1 | 768µs | 768µs | installer::windows::property::update_checkbox_table |
| 109 | 1 | 1 | 468µs | 468µs | installer::windows::property::get_ischeckforproductupdates_for_property_table |
| 109 | 1 | 1 | 468µs | 468µs | installer::windows::property::get_productversion_for_property_table |
| 109 | 1 | 1 | 468µs | 468µs | installer::windows::property::get_installlevel_for_property_table |
| 109 | 1 | 1 | 416µs | 416µs | installer::windows::property::get_manufacturer_for_property_table |
| 1 | 1 | 1 | 391µs | 395µs | installer::windows::property::BEGIN@30 |
| 1 | 1 | 1 | 17µs | 19µs | installer::windows::property::BEGIN@31 |
| 1 | 1 | 1 | 16µs | 19µs | installer::windows::property::BEGIN@33 |
| 1 | 1 | 1 | 16µs | 19µs | installer::windows::property::BEGIN@32 |
| 1 | 1 | 1 | 15µs | 17µs | installer::windows::property::BEGIN@34 |
| 0 | 0 | 0 | 0s | 0s | installer::windows::property::get_english_language_string |
| 0 | 0 | 0 | 0s | 0s | installer::windows::property::get_language_string |
| 0 | 0 | 0 | 0s | 0s | installer::windows::property::set_featurename_properties_for_patch |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | #************************************************************************* | ||||
| 2 | # | ||||
| 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | ||||
| 4 | # | ||||
| 5 | # Copyright 2000, 2010 Oracle and/or its affiliates. | ||||
| 6 | # | ||||
| 7 | # OpenOffice.org - a multi-platform office productivity suite | ||||
| 8 | # | ||||
| 9 | # This file is part of OpenOffice.org. | ||||
| 10 | # | ||||
| 11 | # OpenOffice.org is free software: you can redistribute it and/or modify | ||||
| 12 | # it under the terms of the GNU Lesser General Public License version 3 | ||||
| 13 | # only, as published by the Free Software Foundation. | ||||
| 14 | # | ||||
| 15 | # OpenOffice.org is distributed in the hope that it will be useful, | ||||
| 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
| 18 | # GNU Lesser General Public License version 3 for more details | ||||
| 19 | # (a copy is included in the LICENSE file that accompanied this code). | ||||
| 20 | # | ||||
| 21 | # You should have received a copy of the GNU Lesser General Public License | ||||
| 22 | # version 3 along with OpenOffice.org. If not, see | ||||
| 23 | # <http://www.openoffice.org/license.html> | ||||
| 24 | # for a copy of the LGPLv3 License. | ||||
| 25 | # | ||||
| 26 | #************************************************************************* | ||||
| 27 | |||||
| 28 | package installer::windows::property; | ||||
| 29 | |||||
| 30 | 2 | 70µs | 2 | 399µs | # spent 395µs (391+4) within installer::windows::property::BEGIN@30 which was called:
# once (391µs+4µs) by installer::BEGIN@77 at line 30 # spent 395µs making 1 call to installer::windows::property::BEGIN@30
# spent 4µs making 1 call to UNIVERSAL::import |
| 31 | 2 | 61µs | 2 | 21µs | # spent 19µs (17+2) within installer::windows::property::BEGIN@31 which was called:
# once (17µs+2µs) by installer::BEGIN@77 at line 31 # spent 19µs making 1 call to installer::windows::property::BEGIN@31
# spent 2µs making 1 call to UNIVERSAL::import |
| 32 | 2 | 54µs | 2 | 22µs | # spent 19µs (16+3) within installer::windows::property::BEGIN@32 which was called:
# once (16µs+3µs) by installer::BEGIN@77 at line 32 # spent 19µs making 1 call to installer::windows::property::BEGIN@32
# spent 3µs making 1 call to UNIVERSAL::import |
| 33 | 2 | 57µs | 2 | 22µs | # spent 19µs (16+3) within installer::windows::property::BEGIN@33 which was called:
# once (16µs+3µs) by installer::BEGIN@77 at line 33 # spent 19µs making 1 call to installer::windows::property::BEGIN@33
# spent 2µs making 1 call to UNIVERSAL::import |
| 34 | 2 | 6.84ms | 2 | 20µs | # spent 17µs (15+2) within installer::windows::property::BEGIN@34 which was called:
# once (15µs+2µs) by installer::BEGIN@77 at line 34 # spent 17µs making 1 call to installer::windows::property::BEGIN@34
# spent 2µs making 1 call to UNIVERSAL::import |
| 35 | |||||
| 36 | ############################################# | ||||
| 37 | # Setting the properties dynamically | ||||
| 38 | # for the table Property.idt | ||||
| 39 | ############################################# | ||||
| 40 | |||||
| 41 | sub get_arpcomments_for_property_table | ||||
| 42 | # spent 16.0ms (3.91+12.1) within installer::windows::property::get_arpcomments_for_property_table which was called 109 times, avg 147µs/call:
# 109 times (3.91ms+12.1ms) by installer::windows::property::update_property_table at line 469, avg 147µs/call | ||||
| 43 | 1744 | 16.1ms | my ( $allvariables, $languagestringref ) = @_; | ||
| 44 | |||||
| 45 | my $name = $allvariables->{'PRODUCTNAME'}; | ||||
| 46 | my $version = $allvariables->{'PRODUCTVERSION'}; | ||||
| 47 | my $comment = $name . " " . $version; | ||||
| 48 | |||||
| 49 | my $postversionextension = ""; | ||||
| 50 | if ( $allvariables->{'POSTVERSIONEXTENSION'} ) | ||||
| 51 | { | ||||
| 52 | $postversionextension = $allvariables->{'POSTVERSIONEXTENSION'}; | ||||
| 53 | $comment = $comment . " " . $postversionextension; | ||||
| 54 | } | ||||
| 55 | |||||
| 56 | if ( $installer::globals::languagepack ) { $comment = $comment . " " . "Language Pack"; } | ||||
| 57 | elsif ( $installer::globals::helppack ) { $comment = $comment . " " . "Help Pack"; } | ||||
| 58 | |||||
| 59 | if ( $installer::globals::patch ) | ||||
| 60 | { | ||||
| 61 | if ( ! $allvariables->{'WINDOWSPATCHLEVEL'} ) { installer::exiter::exit_program("ERROR: No Patch level defined for Windows patch: WINDOWSPATCHLEVEL", "get_arpcomments_for_property_table"); } | ||||
| 62 | my $patchstring = "Product Update" . " " . $allvariables->{'WINDOWSPATCHLEVEL'}; | ||||
| 63 | $comment = $comment . " " . $patchstring; | ||||
| 64 | } | ||||
| 65 | |||||
| 66 | my $languagestring = $$languagestringref; | ||||
| 67 | 109 | 12.1ms | $languagestring =~ s/\_/\,/g; # spent 12.1ms making 109 calls to installer::windows::property::CORE:subst, avg 111µs/call | ||
| 68 | |||||
| 69 | $comment = $comment . " ($languagestring)"; | ||||
| 70 | |||||
| 71 | my $localminor = ""; | ||||
| 72 | $localminor = $installer::globals::minor; | ||||
| 73 | |||||
| 74 | my $buildidstring = "(" . $installer::globals::build . $localminor . "(Build:" . $installer::globals::buildid . "))"; | ||||
| 75 | |||||
| 76 | $comment = $comment . " " . $buildidstring; | ||||
| 77 | |||||
| 78 | return $comment; | ||||
| 79 | } | ||||
| 80 | |||||
| 81 | sub get_installlevel_for_property_table | ||||
| 82 | # spent 468µs within installer::windows::property::get_installlevel_for_property_table which was called 109 times, avg 4µs/call:
# 109 times (468µs+0s) by installer::windows::property::update_property_table at line 470, avg 4µs/call | ||||
| 83 | 218 | 778µs | my $installlevel = "100"; | ||
| 84 | return $installlevel; | ||||
| 85 | } | ||||
| 86 | |||||
| 87 | sub get_ischeckforproductupdates_for_property_table | ||||
| 88 | # spent 468µs within installer::windows::property::get_ischeckforproductupdates_for_property_table which was called 109 times, avg 4µs/call:
# 109 times (468µs+0s) by installer::windows::property::update_property_table at line 471, avg 4µs/call | ||||
| 89 | 218 | 769µs | my $ischeckforproductupdates = "1"; | ||
| 90 | return $ischeckforproductupdates; | ||||
| 91 | } | ||||
| 92 | |||||
| 93 | sub get_manufacturer_for_property_table | ||||
| 94 | # spent 416µs within installer::windows::property::get_manufacturer_for_property_table which was called 109 times, avg 4µs/call:
# 109 times (416µs+0s) by installer::windows::property::update_property_table at line 472, avg 4µs/call | ||||
| 95 | 109 | 725µs | return $installer::globals::manufacturer; | ||
| 96 | } | ||||
| 97 | |||||
| 98 | sub get_productlanguage_for_property_table | ||||
| 99 | # spent 2.69ms (1.34+1.36) within installer::windows::property::get_productlanguage_for_property_table which was called 109 times, avg 25µs/call:
# 109 times (1.34ms+1.36ms) by installer::windows::property::update_property_table at line 473, avg 25µs/call | ||||
| 100 | 327 | 1.44ms | my ($language) = @_; | ||
| 101 | 109 | 1.36ms | my $windowslanguage = installer::windows::language::get_windows_language($language); # spent 1.36ms making 109 calls to installer::windows::language::get_windows_language, avg 12µs/call | ||
| 102 | return $windowslanguage; | ||||
| 103 | } | ||||
| 104 | |||||
| 105 | sub get_language_string | ||||
| 106 | { | ||||
| 107 | my $langstring = ""; | ||||
| 108 | |||||
| 109 | for ( my $i = 0; $i <= $#installer::globals::languagenames; $i++ ) | ||||
| 110 | { | ||||
| 111 | $langstring = $langstring . $installer::globals::languagenames[$i] . ", "; | ||||
| 112 | } | ||||
| 113 | |||||
| 114 | $langstring =~ s/\,\s*$//; | ||||
| 115 | $langstring = "(" . $langstring . ")"; | ||||
| 116 | |||||
| 117 | return $langstring; | ||||
| 118 | } | ||||
| 119 | |||||
| 120 | sub get_english_language_string | ||||
| 121 | { | ||||
| 122 | my $langstring = ""; | ||||
| 123 | |||||
| 124 | # Sorting value not keys, therefore collecting all values | ||||
| 125 | my %helper = (); | ||||
| 126 | foreach my $lang ( keys %installer::globals::all_required_english_languagestrings ) | ||||
| 127 | { | ||||
| 128 | $helper{$installer::globals::all_required_english_languagestrings{$lang}} = 1; | ||||
| 129 | } | ||||
| 130 | |||||
| 131 | foreach my $lang ( sort keys %helper ) | ||||
| 132 | { | ||||
| 133 | $langstring = $langstring . $lang . ", "; | ||||
| 134 | } | ||||
| 135 | |||||
| 136 | $langstring =~ s/\,\s*$//; | ||||
| 137 | $langstring = "(" . $langstring . ")"; | ||||
| 138 | |||||
| 139 | return $langstring; | ||||
| 140 | } | ||||
| 141 | |||||
| 142 | sub get_productname($$) | ||||
| 143 | # spent 1.08ms within installer::windows::property::get_productname which was called 218 times, avg 5µs/call:
# 109 times (677µs+0s) by installer::windows::property::get_productname_for_property_table at line 155, avg 6µs/call
# 109 times (403µs+0s) by installer::windows::property::get_quickstarterlinkname_for_property_table at line 204, avg 4µs/call | ||||
| 144 | 654 | 1.66ms | my ( $language, $allvariables ) = @_; | ||
| 145 | |||||
| 146 | my $name = $allvariables->{'PRODUCTNAME'}; | ||||
| 147 | |||||
| 148 | return $name; | ||||
| 149 | } | ||||
| 150 | |||||
| 151 | sub get_productname_for_property_table($$) | ||||
| 152 | # spent 3.47ms (2.79+677µs) within installer::windows::property::get_productname_for_property_table which was called 109 times, avg 32µs/call:
# 109 times (2.79ms+677µs) by installer::windows::property::update_property_table at line 474, avg 32µs/call | ||||
| 153 | 1526 | 2.75ms | my ( $language, $allvariables ) = @_; | ||
| 154 | |||||
| 155 | 109 | 677µs | my $name = get_productname ($language, $allvariables); # spent 677µs making 109 calls to installer::windows::property::get_productname, avg 6µs/call | ||
| 156 | my $version = $allvariables->{'PRODUCTVERSION'}; | ||||
| 157 | my $productname = $name . " " . $version; | ||||
| 158 | |||||
| 159 | my $postversionextension = ""; | ||||
| 160 | if ( $allvariables->{'POSTVERSIONEXTENSION'} ) | ||||
| 161 | { | ||||
| 162 | $postversionextension = $allvariables->{'POSTVERSIONEXTENSION'}; | ||||
| 163 | $productname = $productname . " " . $postversionextension; | ||||
| 164 | } | ||||
| 165 | |||||
| 166 | my $productextension = ""; | ||||
| 167 | if ( $allvariables->{'PRODUCTEXTENSION'} ) | ||||
| 168 | { | ||||
| 169 | $productextension = $allvariables->{'PRODUCTEXTENSION'}; | ||||
| 170 | $productname = $productname . " " . $productextension; | ||||
| 171 | } | ||||
| 172 | |||||
| 173 | if ( $installer::globals::languagepack ) | ||||
| 174 | { | ||||
| 175 | my $langstring = get_english_language_string(); # Example: (English, German) | ||||
| 176 | $productname = $name . " " . $version . " Language Pack" . " " . $langstring; | ||||
| 177 | } | ||||
| 178 | elsif ( $installer::globals::helppack ) | ||||
| 179 | { | ||||
| 180 | my $langstring = get_english_language_string(); # New: (English, German) | ||||
| 181 | $productname = $name . " " . $version . " Help Pack" . " " . $langstring; | ||||
| 182 | } | ||||
| 183 | |||||
| 184 | if ( $installer::globals::patch ) | ||||
| 185 | { | ||||
| 186 | if ( ! $allvariables->{'WINDOWSPATCHLEVEL'} ) { installer::exiter::exit_program("ERROR: No Patch level defined for Windows patch: WINDOWSPATCHLEVEL", "get_productname_for_property_table"); } | ||||
| 187 | my $patchstring = "Product Update" . " " . $allvariables->{'WINDOWSPATCHLEVEL'}; | ||||
| 188 | $productname = $productname . " " . $patchstring; | ||||
| 189 | } | ||||
| 190 | |||||
| 191 | # Saving this name in hash $allvariables for further usage | ||||
| 192 | $allvariables->{'PROPERTYTABLEPRODUCTNAME'} = $productname; | ||||
| 193 | my $infoline = "Defined variable PROPERTYTABLEPRODUCTNAME: $productname\n"; | ||||
| 194 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 195 | |||||
| 196 | return $productname; | ||||
| 197 | } | ||||
| 198 | |||||
| 199 | sub get_quickstarterlinkname_for_property_table($$) | ||||
| 200 | # spent 2.15ms (1.74+403µs) within installer::windows::property::get_quickstarterlinkname_for_property_table which was called 109 times, avg 20µs/call:
# 109 times (1.74ms+403µs) by installer::windows::property::update_property_table at line 476, avg 20µs/call | ||||
| 201 | 763 | 1.69ms | my ( $language, $allvariables ) = @_; | ||
| 202 | |||||
| 203 | # no usage of POSTVERSIONEXTENSION for Quickstarter link name! | ||||
| 204 | 109 | 403µs | my $name = get_productname ($language, $allvariables); # spent 403µs making 109 calls to installer::windows::property::get_productname, avg 4µs/call | ||
| 205 | my $version = $allvariables->{'PRODUCTVERSION'}; | ||||
| 206 | my $quickstartername = $name . " " . $version; | ||||
| 207 | |||||
| 208 | my $infoline = "Defined Quickstarter Link name: $quickstartername\n"; | ||||
| 209 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 210 | |||||
| 211 | return $quickstartername; | ||||
| 212 | } | ||||
| 213 | |||||
| 214 | sub get_productversion_for_property_table | ||||
| 215 | # spent 468µs within installer::windows::property::get_productversion_for_property_table which was called 109 times, avg 4µs/call:
# 109 times (468µs+0s) by installer::windows::property::update_property_table at line 475, avg 4µs/call | ||||
| 216 | 109 | 753µs | return $installer::globals::msiproductversion; | ||
| 217 | } | ||||
| 218 | |||||
| 219 | ####################################################### | ||||
| 220 | # Setting all feature names as Properties. This is | ||||
| 221 | # required for the Windows patch process. | ||||
| 222 | ####################################################### | ||||
| 223 | |||||
| 224 | sub set_featurename_properties_for_patch | ||||
| 225 | { | ||||
| 226 | ($propertyfile) = @_; | ||||
| 227 | |||||
| 228 | for ( my $i = 0; $i <= $#installer::globals::featurecollector; $i++ ) | ||||
| 229 | { | ||||
| 230 | my $onepropertyline = $installer::globals::featurecollector[$i] . "\t" . "1" . "\n"; | ||||
| 231 | push(@{$propertyfile}, $onepropertyline); | ||||
| 232 | } | ||||
| 233 | |||||
| 234 | } | ||||
| 235 | |||||
| 236 | ####################################################### | ||||
| 237 | # Setting some important properties | ||||
| 238 | # (for finding the product in deinstallation process) | ||||
| 239 | ####################################################### | ||||
| 240 | |||||
| 241 | sub set_important_properties | ||||
| 242 | # spent 48.4ms (43.7+4.70) within installer::windows::property::set_important_properties which was called 109 times, avg 444µs/call:
# 109 times (43.7ms+4.70ms) by installer::windows::property::update_property_table at line 504, avg 444µs/call | ||||
| 243 | 2834 | 5.28ms | my ($propertyfile, $allvariables, $languagestringref) = @_; | ||
| 244 | |||||
| 245 | # Setting new variables with the content of %PRODUCTNAME and %PRODUCTVERSION | ||||
| 246 | 218 | 356µs | if ( $allvariables->{'PRODUCTNAME'} ) | ||
| 247 | { | ||||
| 248 | my $onepropertyline = "DEFINEDPRODUCT" . "\t" . $allvariables->{'PRODUCTNAME'} . "\n"; | ||||
| 249 | push(@{$propertyfile}, $onepropertyline); | ||||
| 250 | } | ||||
| 251 | |||||
| 252 | 218 | 326µs | if ( $allvariables->{'PRODUCTVERSION'} ) | ||
| 253 | { | ||||
| 254 | my $onepropertyline = "DEFINEDVERSION" . "\t" . $allvariables->{'PRODUCTVERSION'} . "\n"; | ||||
| 255 | push(@{$propertyfile}, $onepropertyline); | ||||
| 256 | } | ||||
| 257 | |||||
| 258 | 218 | 530µs | if (( $allvariables->{'PRODUCTNAME'} ) && ( $allvariables->{'PRODUCTVERSION'} ) && ( $allvariables->{'REGISTRYLAYERNAME'} )) | ||
| 259 | { | ||||
| 260 | my $onepropertyline = "FINDPRODUCT" . "\t" . "Software\\LibreOffice" . "\\" . $allvariables->{'REGISTRYLAYERNAME'} . "\\" . $allvariables->{'PRODUCTNAME'} . "\\" . $allvariables->{'PRODUCTVERSION'} . "\n"; | ||||
| 261 | push(@{$propertyfile}, $onepropertyline); | ||||
| 262 | } | ||||
| 263 | |||||
| 264 | 218 | 341µs | if ( $allvariables->{'PRODUCTMAJOR'} ) | ||
| 265 | { | ||||
| 266 | my $onepropertyline = "PRODUCTMAJOR" . "\t" . $allvariables->{'PRODUCTMAJOR'} . "\n"; | ||||
| 267 | push(@{$propertyfile}, $onepropertyline); | ||||
| 268 | } | ||||
| 269 | |||||
| 270 | if ( $allvariables->{'PRODUCTMINOR'} ) | ||||
| 271 | { | ||||
| 272 | my $onepropertyline = "PRODUCTMINOR" . "\t" . $allvariables->{'PRODUCTMINOR'} . "\n"; | ||||
| 273 | push(@{$propertyfile}, $onepropertyline); | ||||
| 274 | } | ||||
| 275 | |||||
| 276 | if ( $allvariables->{'PRODUCTBUILDID'} ) | ||||
| 277 | { | ||||
| 278 | my $onepropertyline = "PRODUCTBUILDID" . "\t" . $allvariables->{'PRODUCTBUILDID'} . "\n"; | ||||
| 279 | push(@{$propertyfile}, $onepropertyline); | ||||
| 280 | } | ||||
| 281 | |||||
| 282 | 218 | 365µs | if ( $allvariables->{'URELAYERVERSION'} ) | ||
| 283 | { | ||||
| 284 | my $onepropertyline = "URELAYERVERSION" . "\t" . $allvariables->{'URELAYERVERSION'} . "\n"; | ||||
| 285 | push(@{$propertyfile}, $onepropertyline); | ||||
| 286 | } | ||||
| 287 | |||||
| 288 | 218 | 357µs | if ( $allvariables->{'BRANDPACKAGEVERSION'} ) | ||
| 289 | { | ||||
| 290 | my $onepropertyline = "BRANDPACKAGEVERSION" . "\t" . $allvariables->{'BRANDPACKAGEVERSION'} . "\n"; | ||||
| 291 | push(@{$propertyfile}, $onepropertyline); | ||||
| 292 | } | ||||
| 293 | |||||
| 294 | if ( $allvariables->{'EXCLUDE_FROM_REBASE'} ) | ||||
| 295 | { | ||||
| 296 | my $onepropertyline = "EXCLUDE_FROM_REBASE" . "\t" . $allvariables->{'EXCLUDE_FROM_REBASE'} . "\n"; | ||||
| 297 | push(@{$propertyfile}, $onepropertyline); | ||||
| 298 | } | ||||
| 299 | |||||
| 300 | if ( $allvariables->{'PREREQUIREDPATCH'} ) | ||||
| 301 | { | ||||
| 302 | my $onepropertyline = "PREREQUIREDPATCH" . "\t" . $allvariables->{'PREREQUIREDPATCH'} . "\n"; | ||||
| 303 | push(@{$propertyfile}, $onepropertyline); | ||||
| 304 | } | ||||
| 305 | |||||
| 306 | my $onepropertyline = "IGNOREPREREQUIREDPATCH" . "\t" . "1" . "\n"; | ||||
| 307 | push(@{$propertyfile}, $onepropertyline); | ||||
| 308 | |||||
| 309 | $onepropertyline = "DONTOPTIMIZELIBS" . "\t" . "0" . "\n"; | ||||
| 310 | push(@{$propertyfile}, $onepropertyline); | ||||
| 311 | |||||
| 312 | 654 | 1.30ms | if ( $installer::globals::officedirhostname ) | ||
| 313 | { | ||||
| 314 | my $onepropertyline = "OFFICEDIRHOSTNAME" . "\t" . $installer::globals::officedirhostname . "\n"; | ||||
| 315 | push(@{$propertyfile}, $onepropertyline); | ||||
| 316 | |||||
| 317 | my $localofficedirhostname = $installer::globals::officedirhostname; | ||||
| 318 | 109 | 87µs | $localofficedirhostname =~ s/\//\\/g; # spent 87µs making 109 calls to installer::windows::property::CORE:subst, avg 800ns/call | ||
| 319 | $onepropertyline = "OFFICEDIRHOSTNAME_" . "\t" . $localofficedirhostname . "\n"; | ||||
| 320 | push(@{$propertyfile}, $onepropertyline); | ||||
| 321 | } | ||||
| 322 | |||||
| 323 | 436 | 420µs | if ( $installer::globals::desktoplinkexists ) | ||
| 324 | { | ||||
| 325 | my $onepropertyline = "DESKTOPLINKEXISTS" . "\t" . "1" . "\n"; | ||||
| 326 | push(@{$propertyfile}, $onepropertyline); | ||||
| 327 | |||||
| 328 | $onepropertyline = "CREATEDESKTOPLINK" . "\t" . "1" . "\n"; # Setting the default | ||||
| 329 | push(@{$propertyfile}, $onepropertyline); | ||||
| 330 | } | ||||
| 331 | |||||
| 332 | if ( $installer::globals::patch ) | ||||
| 333 | { | ||||
| 334 | my $onepropertyline = "ISPATCH" . "\t" . "1" . "\n"; | ||||
| 335 | push(@{$propertyfile}, $onepropertyline); | ||||
| 336 | } | ||||
| 337 | |||||
| 338 | if ( $installer::globals::languagepack ) | ||||
| 339 | { | ||||
| 340 | my $onepropertyline = "ISLANGUAGEPACK" . "\t" . "1" . "\n"; | ||||
| 341 | push(@{$propertyfile}, $onepropertyline); | ||||
| 342 | } | ||||
| 343 | elsif ( $installer::globals::helppack ) | ||||
| 344 | { | ||||
| 345 | my $onepropertyline = "ISHELPPACK" . "\t" . "1" . "\n"; | ||||
| 346 | push(@{$propertyfile}, $onepropertyline); | ||||
| 347 | } | ||||
| 348 | |||||
| 349 | my $languagesline = "PRODUCTALLLANGUAGES" . "\t" . $$languagestringref . "\n"; | ||||
| 350 | push(@{$propertyfile}, $languagesline); | ||||
| 351 | |||||
| 352 | 218 | 233µs | if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" )) | ||
| 353 | { | ||||
| 354 | # my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n"; | ||||
| 355 | # push(@{$propertyfile}, $registryline); | ||||
| 356 | my $betainfoline = "BETAPRODUCT" . "\t" . "1" . "\n"; | ||||
| 357 | push(@{$propertyfile}, $betainfoline); | ||||
| 358 | } | ||||
| 359 | elsif ( $allvariables->{'DEVELOPMENTPRODUCT'} ) | ||||
| 360 | { | ||||
| 361 | my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n"; | ||||
| 362 | push(@{$propertyfile}, $registryline); | ||||
| 363 | } | ||||
| 364 | else | ||||
| 365 | { | ||||
| 366 | my $registryline = "WRITE_REGISTRY" . "\t" . "1" . "\n"; # Default: Write complete registry | ||||
| 367 | push(@{$propertyfile}, $registryline); | ||||
| 368 | } | ||||
| 369 | |||||
| 370 | # Adding also used tree conditions for multilayer products. | ||||
| 371 | # These are saved in %installer::globals::usedtreeconditions | ||||
| 372 | foreach my $treecondition (keys %installer::globals::usedtreeconditions) | ||||
| 373 | { | ||||
| 374 | my $onepropertyline = $treecondition . "\t" . "1" . "\n"; | ||||
| 375 | push(@{$propertyfile}, $onepropertyline); | ||||
| 376 | } | ||||
| 377 | |||||
| 378 | # No more license dialog for selected products | ||||
| 379 | 436 | 9.33ms | if ( $allvariables->{'HIDELICENSEDIALOG'} ) | ||
| 380 | { | ||||
| 381 | my $onepropertyline = "HIDEEULA" . "\t" . "1" . "\n"; | ||||
| 382 | |||||
| 383 | my $already_defined = 0; | ||||
| 384 | |||||
| 385 | 8284 | 29.8ms | for ( my $i = 0; $i <= $#{$propertyfile}; $i++ ) | ||
| 386 | { | ||||
| 387 | 8284 | 4.62ms | if ( ${$propertyfile}[$i] =~ /^\s*HIDEEULA\t/ ) # spent 4.62ms making 8284 calls to installer::windows::property::CORE:match, avg 557ns/call | ||
| 388 | { | ||||
| 389 | ${$propertyfile}[$i] = $onepropertyline; | ||||
| 390 | $already_defined = 1; | ||||
| 391 | last; | ||||
| 392 | } | ||||
| 393 | } | ||||
| 394 | |||||
| 395 | if ( ! $already_defined ) | ||||
| 396 | { | ||||
| 397 | push(@{$propertyfile}, $onepropertyline); | ||||
| 398 | } | ||||
| 399 | } | ||||
| 400 | |||||
| 401 | # Setting .NET requirements | ||||
| 402 | push @{$propertyfile}, "REQUIRED_DOTNET_VERSION" . "\t" . "2.0.0.0" . "\n"; | ||||
| 403 | push @{$propertyfile}, "DOTNET_SUFFICIENT" . "\t" . "1" . "\n"; # default value for found .NET | ||||
| 404 | } | ||||
| 405 | |||||
| 406 | ####################################################### | ||||
| 407 | # Setting properties needed for ms file type registration | ||||
| 408 | ####################################################### | ||||
| 409 | |||||
| 410 | sub set_ms_file_types_properties | ||||
| 411 | # spent 3.65ms within installer::windows::property::set_ms_file_types_properties which was called 109 times, avg 33µs/call:
# 109 times (3.65ms+0s) by installer::windows::property::update_property_table at line 510, avg 33µs/call | ||||
| 412 | 2725 | 3.99ms | my ($propertyfile) = @_; | ||
| 413 | |||||
| 414 | # we do not register PPSM, PPAM, and XLAM file types in | ||||
| 415 | # setup_native\source\win32\customactions\reg4allmsdoc\reg4allmsi.cxx | ||||
| 416 | # (probably because LibreOffice can't deal with them properly (?) | ||||
| 417 | |||||
| 418 | push(@{$propertyfile}, "REGISTER_PPS" . "\t" . "0" . "\n"); | ||||
| 419 | push(@{$propertyfile}, "REGISTER_PPSX" . "\t" . "0" . "\n"); | ||||
| 420 | # push(@{$propertyfile}, "REGISTER_PPSM" . "\t" . "0" . "\n"); | ||||
| 421 | # push(@{$propertyfile}, "REGISTER_PPAM" . "\t" . "0" . "\n"); | ||||
| 422 | push(@{$propertyfile}, "REGISTER_PPT" . "\t" . "0" . "\n"); | ||||
| 423 | push(@{$propertyfile}, "REGISTER_PPTX" . "\t" . "0" . "\n"); | ||||
| 424 | push(@{$propertyfile}, "REGISTER_PPTM" . "\t" . "0" . "\n"); | ||||
| 425 | push(@{$propertyfile}, "REGISTER_POT" . "\t" . "0" . "\n"); | ||||
| 426 | push(@{$propertyfile}, "REGISTER_POTX" . "\t" . "0" . "\n"); | ||||
| 427 | push(@{$propertyfile}, "REGISTER_POTM" . "\t" . "0" . "\n"); | ||||
| 428 | |||||
| 429 | push(@{$propertyfile}, "REGISTER_DOC" . "\t" . "0" . "\n"); | ||||
| 430 | push(@{$propertyfile}, "REGISTER_DOCX" . "\t" . "0" . "\n"); | ||||
| 431 | push(@{$propertyfile}, "REGISTER_DOCM" . "\t" . "0" . "\n"); | ||||
| 432 | push(@{$propertyfile}, "REGISTER_DOT" . "\t" . "0" . "\n"); | ||||
| 433 | push(@{$propertyfile}, "REGISTER_DOTX" . "\t" . "0" . "\n"); | ||||
| 434 | push(@{$propertyfile}, "REGISTER_DOTM" . "\t" . "0" . "\n"); | ||||
| 435 | push(@{$propertyfile}, "REGISTER_RTF" . "\t" . "0" . "\n"); | ||||
| 436 | |||||
| 437 | push(@{$propertyfile}, "REGISTER_XLS" . "\t" . "0" . "\n"); | ||||
| 438 | push(@{$propertyfile}, "REGISTER_XLSX" . "\t" . "0" . "\n"); | ||||
| 439 | push(@{$propertyfile}, "REGISTER_XLSM" . "\t" . "0" . "\n"); | ||||
| 440 | push(@{$propertyfile}, "REGISTER_XLSB" . "\t" . "0" . "\n"); | ||||
| 441 | # push(@{$propertyfile}, "REGISTER_XLAM" . "\t" . "0" . "\n"); | ||||
| 442 | push(@{$propertyfile}, "REGISTER_XLT" . "\t" . "0" . "\n"); | ||||
| 443 | push(@{$propertyfile}, "REGISTER_XLTX" . "\t" . "0" . "\n"); | ||||
| 444 | push(@{$propertyfile}, "REGISTER_XLTM" . "\t" . "0" . "\n"); | ||||
| 445 | |||||
| 446 | push(@{$propertyfile}, "REGISTER_NO_MSO_TYPES" . "\t" . "0" . "\n"); | ||||
| 447 | push(@{$propertyfile}, "REGISTER_ALL_MSO_TYPES" . "\t" . "0" . "\n"); | ||||
| 448 | } | ||||
| 449 | |||||
| 450 | #################################################################################### | ||||
| 451 | # Updating the file Property.idt dynamically | ||||
| 452 | # Content: | ||||
| 453 | # Property Value | ||||
| 454 | #################################################################################### | ||||
| 455 | |||||
| 456 | sub update_property_table | ||||
| 457 | # spent 423ms (205+218) within installer::windows::property::update_property_table which was called 109 times, avg 3.88ms/call:
# 109 times (205ms+218ms) by installer::run at line 1643 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 3.88ms/call | ||||
| 458 | 2180 | 19.2ms | my ($basedir, $language, $allvariables, $languagestringref) = @_; | ||
| 459 | |||||
| 460 | my $properyfilename = $basedir . $installer::globals::separator . "Property.idt"; | ||||
| 461 | |||||
| 462 | 109 | 58.8ms | my $propertyfile = installer::files::read_file($properyfilename); # spent 58.8ms making 109 calls to installer::files::read_file, avg 540µs/call | ||
| 463 | |||||
| 464 | my $hasarpnomodify = 0; | ||||
| 465 | |||||
| 466 | # Getting the new values | ||||
| 467 | # Some values (arpcomments, arpcontacts, ...) are inserted from the Property.mlf | ||||
| 468 | |||||
| 469 | 109 | 16.0ms | my $arpcomments = get_arpcomments_for_property_table($allvariables, $languagestringref); # spent 16.0ms making 109 calls to installer::windows::property::get_arpcomments_for_property_table, avg 147µs/call | ||
| 470 | 109 | 468µs | my $installlevel = get_installlevel_for_property_table(); # spent 468µs making 109 calls to installer::windows::property::get_installlevel_for_property_table, avg 4µs/call | ||
| 471 | 109 | 468µs | my $ischeckforproductupdates = get_ischeckforproductupdates_for_property_table(); # spent 468µs making 109 calls to installer::windows::property::get_ischeckforproductupdates_for_property_table, avg 4µs/call | ||
| 472 | 109 | 416µs | my $manufacturer = get_manufacturer_for_property_table(); # spent 416µs making 109 calls to installer::windows::property::get_manufacturer_for_property_table, avg 4µs/call | ||
| 473 | 109 | 2.69ms | my $productlanguage = get_productlanguage_for_property_table($language); # spent 2.69ms making 109 calls to installer::windows::property::get_productlanguage_for_property_table, avg 25µs/call | ||
| 474 | 109 | 3.47ms | my $productname = get_productname_for_property_table($language, $allvariables); # spent 3.47ms making 109 calls to installer::windows::property::get_productname_for_property_table, avg 32µs/call | ||
| 475 | 109 | 468µs | my $productversion = get_productversion_for_property_table(); # spent 468µs making 109 calls to installer::windows::property::get_productversion_for_property_table, avg 4µs/call | ||
| 476 | 109 | 2.15ms | my $quickstarterlinkname = get_quickstarterlinkname_for_property_table($language, $allvariables); # spent 2.15ms making 109 calls to installer::windows::property::get_quickstarterlinkname_for_property_table, avg 20µs/call | ||
| 477 | |||||
| 478 | # Updating the values | ||||
| 479 | |||||
| 480 | 60822 | 215ms | for ( my $i = 0; $i <= $#{$propertyfile}; $i++ ) | ||
| 481 | { | ||||
| 482 | 6758 | 4.26ms | ${$propertyfile}[$i] =~ s/\bARPCOMMENTSTEMPLATE\b/$arpcomments/; # spent 4.26ms making 6758 calls to installer::windows::property::CORE:subst, avg 630ns/call | ||
| 483 | 6758 | 3.59ms | ${$propertyfile}[$i] =~ s/\bINSTALLLEVELTEMPLATE\b/$installlevel/; # spent 3.59ms making 6758 calls to installer::windows::property::CORE:subst, avg 532ns/call | ||
| 484 | 6758 | 3.42ms | ${$propertyfile}[$i] =~ s/\bISCHECKFORPRODUCTUPDATESTEMPLATE\b/$ischeckforproductupdates/; # spent 3.42ms making 6758 calls to installer::windows::property::CORE:subst, avg 506ns/call | ||
| 485 | 6758 | 3.57ms | ${$propertyfile}[$i] =~ s/\bMANUFACTURERTEMPLATE\b/$manufacturer/; # spent 3.57ms making 6758 calls to installer::windows::property::CORE:subst, avg 528ns/call | ||
| 486 | 6758 | 3.41ms | ${$propertyfile}[$i] =~ s/\bPRODUCTLANGUAGETEMPLATE\b/$productlanguage/; # spent 3.41ms making 6758 calls to installer::windows::property::CORE:subst, avg 505ns/call | ||
| 487 | 6758 | 3.54ms | ${$propertyfile}[$i] =~ s/\bPRODUCTNAMETEMPLATE\b/$productname/; # spent 3.54ms making 6758 calls to installer::windows::property::CORE:subst, avg 523ns/call | ||
| 488 | 6758 | 3.47ms | ${$propertyfile}[$i] =~ s/\bPRODUCTVERSIONTEMPLATE\b/$productversion/; # spent 3.47ms making 6758 calls to installer::windows::property::CORE:subst, avg 514ns/call | ||
| 489 | 6758 | 3.38ms | ${$propertyfile}[$i] =~ s/\bQUICKSTARTERLINKNAMETEMPLATE\b/$quickstarterlinkname/; # spent 3.38ms making 6758 calls to installer::windows::property::CORE:subst, avg 499ns/call | ||
| 490 | 6758 | 3.79ms | if ( ${$propertyfile}[$i] =~ m/\bARPNOMODIFY\b/ ) { $hasarpnomodify = 1; } # spent 3.79ms making 6758 calls to installer::windows::property::CORE:match, avg 561ns/call | ||
| 491 | } | ||||
| 492 | |||||
| 493 | # Check if are building silent MSI | ||||
| 494 | if ( $ENV{ENABLE_SILENT_MSI} eq "TRUE" ) | ||||
| 495 | { | ||||
| 496 | push(@{$propertyfile}, "LIMITUI" . "\t" . "1" . "\n"); | ||||
| 497 | if ( !($hasarpnomodify) ) | ||||
| 498 | { | ||||
| 499 | push(@{$propertyfile}, "ARPNOMODIFY" . "\t" . "1" . "\n"); | ||||
| 500 | } | ||||
| 501 | } | ||||
| 502 | |||||
| 503 | # Setting variables into propertytable | ||||
| 504 | 109 | 48.4ms | set_important_properties($propertyfile, $allvariables, $languagestringref); # spent 48.4ms making 109 calls to installer::windows::property::set_important_properties, avg 444µs/call | ||
| 505 | |||||
| 506 | # Setting feature names as properties for Windows patch mechanism | ||||
| 507 | if ( $installer::globals::patch ) { set_featurename_properties_for_patch($propertyfile); } | ||||
| 508 | |||||
| 509 | # Setting variables for register for ms file types | ||||
| 510 | 109 | 3.65ms | set_ms_file_types_properties($propertyfile); # spent 3.65ms making 109 calls to installer::windows::property::set_ms_file_types_properties, avg 33µs/call | ||
| 511 | |||||
| 512 | # Saving the file | ||||
| 513 | |||||
| 514 | 109 | 48.0ms | installer::files::save_file($properyfilename ,$propertyfile); # spent 48.0ms making 109 calls to installer::files::save_file, avg 440µs/call | ||
| 515 | my $infoline = "Updated idt file: $properyfilename\n"; | ||||
| 516 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 517 | |||||
| 518 | } | ||||
| 519 | |||||
| 520 | #################################################################################### | ||||
| 521 | # Setting language specific Properties in file Property.idt dynamically | ||||
| 522 | # Adding: | ||||
| 523 | # isMulti = 1 | ||||
| 524 | #################################################################################### | ||||
| 525 | |||||
| 526 | sub set_languages_in_property_table | ||||
| 527 | # spent 127ms (7.19+120) within installer::windows::property::set_languages_in_property_table which was called 109 times, avg 1.17ms/call:
# 109 times (7.19ms+120ms) by installer::run at line 1655 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 1.17ms/call | ||||
| 528 | 1308 | 6.53ms | my ($basedir, $languagesarrayref) = @_; | ||
| 529 | |||||
| 530 | my $properyfilename = $basedir . $installer::globals::separator . "Property.idt"; | ||||
| 531 | 109 | 76.4ms | my $propertyfile = installer::files::read_file($properyfilename); # spent 76.4ms making 109 calls to installer::files::read_file, avg 701µs/call | ||
| 532 | |||||
| 533 | # Setting the info about multilingual installation in property "isMulti" | ||||
| 534 | |||||
| 535 | my $propertyname = "isMulti"; | ||||
| 536 | my $ismultivalue = 0; | ||||
| 537 | |||||
| 538 | if ( $installer::globals::ismultilingual ) { $ismultivalue = 1; } | ||||
| 539 | |||||
| 540 | my $onepropertyline = $propertyname . "\t" . $ismultivalue . "\n"; | ||||
| 541 | push(@{$propertyfile}, $onepropertyline); | ||||
| 542 | |||||
| 543 | # setting the ARPPRODUCTICON | ||||
| 544 | |||||
| 545 | 218 | 195µs | if ($installer::globals::sofficeiconadded) # set in shortcut.pm | ||
| 546 | { | ||||
| 547 | $onepropertyline = "ARPPRODUCTICON" . "\t" . "soffice.ico" . "\n"; | ||||
| 548 | push(@{$propertyfile}, $onepropertyline); | ||||
| 549 | } | ||||
| 550 | |||||
| 551 | # Saving the file | ||||
| 552 | |||||
| 553 | 109 | 43.4ms | installer::files::save_file($properyfilename ,$propertyfile); # spent 43.4ms making 109 calls to installer::files::save_file, avg 398µs/call | ||
| 554 | my $infoline = "Added language content into idt file: $properyfilename\n"; | ||||
| 555 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 556 | |||||
| 557 | } | ||||
| 558 | |||||
| 559 | ############################################################ | ||||
| 560 | # Setting the ProductCode and the UpgradeCode | ||||
| 561 | # into the Property table. Both have to be stored | ||||
| 562 | # in the global file $installer::globals::codefilename | ||||
| 563 | ############################################################ | ||||
| 564 | |||||
| 565 | sub set_codes_in_property_table | ||||
| 566 | # spent 166ms (54.7+112) within installer::windows::property::set_codes_in_property_table which was called 109 times, avg 1.53ms/call:
# 109 times (54.7ms+112ms) by installer::run at line 1639 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 1.53ms/call | ||||
| 567 | 763 | 12.4ms | my ($basedir) = @_; | ||
| 568 | |||||
| 569 | # Reading the property file | ||||
| 570 | |||||
| 571 | my $properyfilename = $basedir . $installer::globals::separator . "Property.idt"; | ||||
| 572 | 109 | 60.2ms | my $propertyfile = installer::files::read_file($properyfilename); # spent 60.2ms making 109 calls to installer::files::read_file, avg 552µs/call | ||
| 573 | |||||
| 574 | # Updating the values | ||||
| 575 | |||||
| 576 | 13516 | 49.5ms | for ( my $i = 0; $i <= $#{$propertyfile}; $i++ ) | ||
| 577 | { | ||||
| 578 | 6758 | 4.28ms | ${$propertyfile}[$i] =~ s/\bPRODUCTCODETEMPLATE\b/$installer::globals::productcode/; # spent 4.28ms making 6758 calls to installer::windows::property::CORE:subst, avg 633ns/call | ||
| 579 | 6758 | 3.51ms | ${$propertyfile}[$i] =~ s/\bUPGRADECODETEMPLATE\b/$installer::globals::upgradecode/; # spent 3.51ms making 6758 calls to installer::windows::property::CORE:subst, avg 519ns/call | ||
| 580 | } | ||||
| 581 | |||||
| 582 | # Saving the property file | ||||
| 583 | |||||
| 584 | 109 | 43.7ms | installer::files::save_file($properyfilename ,$propertyfile); # spent 43.7ms making 109 calls to installer::files::save_file, avg 401µs/call | ||
| 585 | my $infoline = "Added language content into idt file: $properyfilename\n"; | ||||
| 586 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 587 | |||||
| 588 | } | ||||
| 589 | |||||
| 590 | ############################################################ | ||||
| 591 | # Changing default for MS file type registration | ||||
| 592 | # in Beta products. | ||||
| 593 | ############################################################ | ||||
| 594 | |||||
| 595 | sub update_checkbox_table | ||||
| 596 | # spent 768µs within installer::windows::property::update_checkbox_table which was called 109 times, avg 7µs/call:
# 109 times (768µs+0s) by installer::run at line 1658 of /cygdrive/c/lo/libo-master/instsetoo_native/util/C:/lo/libo-master/solenv/bin/modules/installer.pm, avg 7µs/call | ||||
| 597 | 218 | 907µs | my ($basedir, $allvariables) = @_; | ||
| 598 | |||||
| 599 | if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" )) | ||||
| 600 | { | ||||
| 601 | my $checkboxfilename = $basedir . $installer::globals::separator . "CheckBox.idt"; | ||||
| 602 | |||||
| 603 | if ( -f $checkboxfilename ) | ||||
| 604 | { | ||||
| 605 | my $checkboxfile = installer::files::read_file($checkboxfilename); | ||||
| 606 | |||||
| 607 | my $checkboxline = "SELECT_WORD" . "\t" . "0" . "\n"; | ||||
| 608 | push(@{$checkboxfile}, $checkboxline); | ||||
| 609 | $checkboxline = "SELECT_EXCEL" . "\t" . "0" . "\n"; | ||||
| 610 | push(@{$checkboxfile}, $checkboxline); | ||||
| 611 | $checkboxline = "SELECT_POWERPOINT" . "\t" . "0" . "\n"; | ||||
| 612 | push(@{$checkboxfile}, $checkboxline); | ||||
| 613 | $checkboxline = "SELECT_VISIO" . "\t" . "0" . "\n"; | ||||
| 614 | push(@{$checkboxfile}, $checkboxline); | ||||
| 615 | |||||
| 616 | # Saving the property file | ||||
| 617 | installer::files::save_file($checkboxfilename ,$checkboxfile); | ||||
| 618 | my $infoline = "Added ms file type defaults into idt file: $checkboxfilename\n"; | ||||
| 619 | push(@installer::globals::logfileinfo, $infoline); | ||||
| 620 | } | ||||
| 621 | } | ||||
| 622 | } | ||||
| 623 | |||||
| 624 | 1 | 8µs | 1; | ||
# spent 8.41ms within installer::windows::property::CORE:match which was called 15042 times, avg 559ns/call:
# 8284 times (4.62ms+0s) by installer::windows::property::set_important_properties at line 387, avg 557ns/call
# 6758 times (3.79ms+0s) by installer::windows::property::update_property_table at line 490, avg 561ns/call | |||||
# spent 48.6ms within installer::windows::property::CORE:subst which was called 67798 times, avg 718ns/call:
# 6758 times (4.28ms+0s) by installer::windows::property::set_codes_in_property_table at line 578, avg 633ns/call
# 6758 times (4.26ms+0s) by installer::windows::property::update_property_table at line 482, avg 630ns/call
# 6758 times (3.59ms+0s) by installer::windows::property::update_property_table at line 483, avg 532ns/call
# 6758 times (3.57ms+0s) by installer::windows::property::update_property_table at line 485, avg 528ns/call
# 6758 times (3.54ms+0s) by installer::windows::property::update_property_table at line 487, avg 523ns/call
# 6758 times (3.51ms+0s) by installer::windows::property::set_codes_in_property_table at line 579, avg 519ns/call
# 6758 times (3.47ms+0s) by installer::windows::property::update_property_table at line 488, avg 514ns/call
# 6758 times (3.42ms+0s) by installer::windows::property::update_property_table at line 484, avg 506ns/call
# 6758 times (3.41ms+0s) by installer::windows::property::update_property_table at line 486, avg 505ns/call
# 6758 times (3.38ms+0s) by installer::windows::property::update_property_table at line 489, avg 499ns/call
# 109 times (12.1ms+0s) by installer::windows::property::get_arpcomments_for_property_table at line 67, avg 111µs/call
# 109 times (87µs+0s) by installer::windows::property::set_important_properties at line 318, avg 800ns/call |