Commit Graph

28558 Commits

Author SHA1 Message Date
Brad King
577fc3ef19 Merge topic 'string-prefix'
ec7928ef26 use _s to construct static string_views at several places
94de927cab VS10Generator: avoid many string allocations
8ca2504a4d use string_views to avoid memory allocations
761f1adcae check for a valid URL scheme before starting to do any splitting
ef778d77e0 replace std::string::substr() with operations that do not allocate memory
77616f4681 pass cm::string_view to cmVisualStudioSlnParser::ParseTag()
ada6a3226f use cm::string_view for language extension lookups
48adc29721 replace "std::string::find(x) == 0" with cmHasPrefix()
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4501
2020-03-26 09:15:41 -04:00
Brad King
607e790f4b Merge topic 'update-kwsys'
5f8d1668a2 Merge branch 'upstream-KWSys' into update-kwsys
9d3b9ec4ab KWSys 2020-03-25 (4380f1ae)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4509
2020-03-26 09:14:41 -04:00
Brad King
6257d43ffd Merge topic 'compile-commands-collapse-whitespace'
e565053bce Ninja: Remove unnecessary newlines in compile commands
5d4bab500e Avoid consecutive whitespace in rules
d8622fbd0f Modules: Collapse consecutive whitespace in strings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4512
2020-03-26 09:13:45 -04:00
Brad King
4e74a59ab5 Merge topic 'cleanup-CollapseFullPath-calls'
25f48761fa Simplify absolute path conversions using CollapseFullPath full signature
12b39aef75 Remove redundant calls to CollapseFullPath

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4518
2020-03-26 09:11:47 -04:00
Kitware Robot
66e0b312c0 CMake Nightly Date Stamp 2020-03-26 00:01:10 -04:00
Brad King
ea54f8d441 Merge topic 'cmake-compilation-no-compiler-extensions'
f034b0f663 CMake compilation: do not use compiler extensions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4477
2020-03-25 10:34:40 -04:00
Brad King
952fbd9ee5 Merge topic 'cmprop-state'
ef408dd232 cmState::GetTargetTypeName: return type is *cmProp

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4505
2020-03-25 09:25:26 -04:00
Brad King
d13d5c11cf Merge topic 'cmprop-cache'
0bf0e35e59 cmCacheManager::GetProperty: return cmProp

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4503
2020-03-25 08:39:26 -04:00
Brad King
5f8d1668a2 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2020-03-25 (4380f1ae)
2020-03-25 07:47:51 -04:00
Kitware Robot
69e495d10a CMake Nightly Date Stamp 2020-03-25 00:01:07 -04:00
Rolf Eike Beer
ec7928ef26 use _s to construct static string_views at several places
This should avoid the runtime strlen() call.
2020-03-24 19:40:44 +01:00
Rolf Eike Beer
94de927cab VS10Generator: avoid many string allocations 2020-03-24 17:50:42 +01:00
Rolf Eike Beer
8ca2504a4d use string_views to avoid memory allocations 2020-03-24 17:50:37 +01:00
Brad King
25f48761fa Simplify absolute path conversions using CollapseFullPath full signature 2020-03-24 10:10:06 -04:00
Brad King
12b39aef75 Remove redundant calls to CollapseFullPath
Remove calls where it is known the input is already a collapsed
full path.
2020-03-24 10:10:06 -04:00
Kitware Robot
c98ec3692e CMake Nightly Date Stamp 2020-03-24 00:01:07 -04:00
Rolf Eike Beer
761f1adcae check for a valid URL scheme before starting to do any splitting 2020-03-23 22:41:44 +01:00
Rolf Eike Beer
ef778d77e0 replace std::string::substr() with operations that do not allocate memory
Modify the original string instead of creating a new copy with substr() when it
is not used for anything else afterwards.
2020-03-23 22:41:44 +01:00
Rolf Eike Beer
77616f4681 pass cm::string_view to cmVisualStudioSlnParser::ParseTag() 2020-03-23 22:41:43 +01:00
Rolf Eike Beer
ada6a3226f use cm::string_view for language extension lookups
Once the list of extensions is build the set is just a copy of the vector and
not modified anymore. Use a string_view for the members of the set, which saves
a small amount of memory. It also makes possible to use string_views as lookup
keys, so the callers do not need to create copies for the extensions anymore.
2020-03-23 22:41:43 +01:00
Rolf Eike Beer
48adc29721 replace "std::string::find(x) == 0" with cmHasPrefix() 2020-03-23 22:41:43 +01:00
Daan De Meyer
e565053bce Ninja: Remove unnecessary newlines in compile commands 2020-03-23 21:34:19 +01:00
Daan De Meyer
5d4bab500e Avoid consecutive whitespace in rules 2020-03-23 21:34:19 +01:00
Rolf Eike Beer
bfb69f9543 replace "substr(0, xx) ==" with cmHasPrefix() 2020-03-23 20:19:26 +01:00
Rolf Eike Beer
7df84ffe58 allow cmCTest::CleanString() to skip input characters
This entirely avoids that one needs to call std::string::substr() for the
input.
2020-03-23 20:19:26 +01:00
Rolf Eike Beer
d6a4e9fbc8 CTest: avoid repeated string compares
Only one key can match per iteration, avoid any further compares when one match
was already found. While at it entirely avoid that the key and value strings are
copied.
2020-03-23 20:18:02 +01:00
Rolf Eike Beer
d1e6ee6fe3 Mumps coverage: directly pass std::string as argument 2020-03-23 19:47:47 +01:00
Rolf Eike Beer
dc21177461 remove pointless return value from cmCTestTestHandler::CleanTestOutput() 2020-03-23 19:47:47 +01:00
Rolf Eike Beer
36bfb80338 PyCoverage: avoid repeated string splitting, especially for uncovered lines 2020-03-23 19:47:47 +01:00
Rolf Eike Beer
0415fa3be7 use std::string::rfind() instead of open coding it
While at it avoid creating a new string.
2020-03-23 19:47:47 +01:00
Rolf Eike Beer
871bf0cc88 CPackWIXGenerator: use cmStrCat for more parts 2020-03-23 19:47:46 +01:00
Rolf Eike Beer
d6cf89c0d4 remove needless check for std::string::substr()
Passing npos is legal and means "rest of the string".
2020-03-23 19:47:46 +01:00
Rolf Eike Beer
a42d2b099a cmcldeps: replace inefficient std::string::substr usage 2020-03-23 19:47:46 +01:00
Rolf Eike Beer
59d572bb4a replace private startsWith() implementation with cmHasPrefix() 2020-03-23 19:47:46 +01:00
Brad King
a4abf61520 Merge topic 'cmake-gui-open-check'
ecc0086bfc cmake-gui: Fix use-after-free in Open-possible check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4508
2020-03-23 09:27:44 -04:00
Marc Chevrier
f034b0f663 CMake compilation: do not use compiler extensions
For now, compiler extensions are no longer activated on CMake sources.
However these extensions are still used for various third parties.

This MR is a partial answer to the issue #20454.
2020-03-23 10:29:58 +01:00
Kitware Robot
8638c49f2a CMake Nightly Date Stamp 2020-03-23 00:01:05 -04:00
Kitware Robot
7099db5dd4 CMake Nightly Date Stamp 2020-03-22 00:01:11 -04:00
Kitware Robot
8bef78bb73 CMake Nightly Date Stamp 2020-03-21 00:01:12 -04:00
Francisco Facioni
ecc0086bfc cmake-gui: Fix use-after-free in Open-possible check
Fix `QCMake::checkOpenPossible` to copy `toLocal8Bit().data()` before
its lifetime expires.
2020-03-20 08:38:31 -04:00
Brad King
e3185e3d1b CMake 3.17.0 2020-03-20 06:26:14 -04:00
Brad King
119d1dadce Merge topic 'export-repeat' into release-3.17
8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4494
2020-03-20 06:17:00 -04:00
Brad King
94139ac58e Merge topic 'export-repeat'
8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4494
2020-03-20 06:17:00 -04:00
Kitware Robot
9bbea2344b CMake Nightly Date Stamp 2020-03-20 00:01:11 -04:00
Vitaly Stakhovsky
ef408dd232 cmState::GetTargetTypeName: return type is *cmProp 2020-03-19 08:55:03 -04:00
Vitaly Stakhovsky
0bf0e35e59 cmCacheManager::GetProperty: return cmProp 2020-03-19 08:18:42 -04:00
Brad King
60db3af147 Merge topic 'cmprop-state'
bd89133543 cmState::GetCacheEntryValue: return cmProp

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4493
2020-03-19 07:18:27 -04:00
Brad King
7bdf84d2d5 Merge topic 'target-improve'
b915fec56e cmTarget: minor code improvements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4483
2020-03-19 07:17:39 -04:00
Brad King
0586123ede Merge topic 'trace-format-json-doc'
1994f950ff cmake: List valid values for --trace-format on the command line
e39766d84a Help: Fix documentation of --trace-format parameter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4500
2020-03-19 06:57:52 -04:00
Brad King
8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE
CMake 3.16 and below allow multiple `export()` calls with the same output
file even without using `APPEND`.  The implementation worked by accident
by leaking memory.  Refactoring in commit 5444a8095d (cmGlobalGenerator:
modernize memrory managemenbt, 2019-12-29, v3.17.0-rc1~239^2) cleaned up
that memory leak and converted it to a use-after-free instead.

The problem is caused by using the `cmGlobalGenerator::BuildExportSets`
map to own `cmExportBuildFileGenerator` instances.  It can own only
one instance per output FILE name at a time, so repeating use of the
same file now frees the old `cmExportBuildFileGenerator` instance
and leaves the pointer in the `cmMakefile::ExportBuildFileGenerators`
vector dangling.  Move ownership of the instances into `cmMakefile`'s
vector since its entries are not replaced on a repeat output FILE.

In future work we should introduce a policy to error out on this case.
For now simply fix the use-after-free to restore CMake <= 3.16 behavior.

Fixes: #20469
2020-03-19 06:41:39 -04:00