- Oct 03, 2018
-
-
Guilherme Amadio authored
-
Vassil Vassilev authored
-
- Oct 02, 2018
-
-
Philippe Canal authored
The rule were actually still executed on the proper object and in the right order. However when we had - a top level object with a rule for one of its transient member - that top level object also having a data member that is an STL collection. then the fOnfileObject (type TVirtualArray) was inadvertently resized by the top node of the STL object (i.e 'type 4' branch) to the size of the collection. Before the improvement to the rule scheduling the ordering of operations was: 1 - a - resize the top level object's fOnfileObject to 1 2 - b - read the input for the transient member into the fOnfileObject 3 - c - execute the rule using the input/fOnfileObject and updating the transient member 4 - d - resize the top level object's fOnfileObject to size of sub-collection The last stage provoke a reallocation of the element of fOnfileObject (thus losing the input but only 'after' it has been used. With the new rule scheduling the order becomes 1 - a - resize the top level object's fOnfileObject to 1 2 - b - read the input for the transient member into the fOnfileObject 3 - d - resize the top level object's fOnfileObject to size of sub-collection 4 - c - execute the rule using the input/fOnfileObject and updating the transient member and now the consequence of the inadvertent resize becomes visible. i.e. for each entry where the sub-collection 'grows' the transient member value will be invalid. [Note: in the example provided with ROOT-9701 the sub-collection 'grows' by one at each entry]
-
Yuka Takahashi authored
Fwd decls from rootmap files were injected to ROOT at the startup time. However with modules we don't need any foward decls as we're preloading all modules. Our future plan is to remove rootmap files as a whole, but we still need to support more features (see 2380). So for now we can remove what we are not using. This improves startup memory by 10 mbytes.
-
Vassil Vassilev authored
This reverts commit 1a24e092.
-
Oksana Shadura authored
-
Oksana Shadura authored
-
Oksana Shadura authored
-
Oksana Shadura authored
-
Oksana Shadura authored
-
Sergey Linev authored
-
Sergey Linev authored
-
Sergey Linev authored
Fixes https://sft.its.cern.ch/jira/projects/ROOT/issues/ROOT-9624 Description: https://bugs.mysql.com/bug.php?id=85131
-
Xavier Valls Pla authored
-
Xavier Valls Pla authored
-
Xavier Valls Pla authored
-
Axel Naumann authored
-
Axel Naumann authored
-
Axel Naumann authored
-
Guilherme Amadio authored
NetxNG needs the include directory for XRootD, but when XRootD is enabled as a builtin, the include directory points to the build directory and causes CMake to fail with an error like the one below: CMake Error in net/netxng/CMakeLists.txt: Target "NetxNG" INTERFACE_INCLUDE_DIRECTORIES property contains path: "${BUILDDIR}/include/xrootd" which is prefixed in the build directory. This is a blocker to move to modern CMake constructs (using targets and properties) for targets that use headers of builtins in their own headers, as we cannot create imported or exported targets with proper dependencies.
-
Danilo Piparo authored
-
Danilo Piparo authored
of branches when calling the TTree::Get(Tot|Zip)Bytes method.
-
- Oct 01, 2018
-
-
Philippe Canal authored
-
Philippe Canal authored
Commit b6523df2 introduces the infinite recursion whenever there was a problem reading the StreamerInfo record and introduces a useless attempt to read from file in the case of a class derived from TFile that overrid GetStreamerInfoList. To allow for increase run-time performance and increase thread scalability the override ability of TFile::GetStreamerInfoList is replaced by an override of TFile::GetStreamerInfoListImp with updated return type and arguments. If a class override TFile::GetStreamerInfoList you will now see a compilation error like: ``` /opt/build/root_builds/rootcling.cmake/include/TSQLFile.h:225:19: error: declaration of 'GetStreamerInfoList' overrides a 'final' function virtual TList *GetStreamerInfoList(); ^ /opt/build/root_builds/rootcling.cmake/include/TFile.h:231:24: note: overridden virtual function is here virtual TList *GetStreamerInfoList() final; // Note: to override behavior, please override GetStreamerInfoListImpl ^ ``` Instead you need to override the protected method: ``` InfoListRet GetStreamerInfoListImpl(bool lookupSICache); ``` which can be implemented as ``` InfoListRet DerivedClass::GetStreamerInfoListImpl(bool /*lookupSICache*/) { ROOT::Internal::RConcurrentHashColl::HashValue hash; TList *infolist = nullptr; // // Body of the former Derived::GetStreamerInfoList with the // return statement replaced with something like: // The second element indicates success or failure of the load. // (i.e. {nullptr, 0, hash} indicates the list has already been processed // {nullptr, 1, hash} indicates the list failed to be loaded return {infolist, 0, hash}; } ``` See TFile::GetStreamerInfoListImpl implementation for an example on how to implement the caching.
-
Olivier Couet authored
-
Olivier Couet authored
-
Olivier Couet authored
-
Vassil Vassilev authored
We assumed that we will always have module file and unconditionally disable header parsing on demand. However, the major use-case is gradual migration to modules. In this scenario (tested by root-meta-fwdDecls-fwdDeclarations), we have a dictionary which has no module file and still relies on the old behavior. This can realistically happen when users gradually migrate to modules. For example, we have modules-aware ROOT and untouched third party code. This patch enables header parsing on demand when we have no module file available.
-
Bertrand Bellenot authored
-
Sergey Linev authored
-
Sergey Linev authored
Now these are: RWebWindow and RWebWindowsManager
-
Sergey Linev authored
-
Sergey Linev authored
-
Sergey Linev authored
-
Sergey Linev authored
-
Lorenzo Moneta authored
This fixes ROOT-9693 and ROOT-9703
-
Guilherme Amadio authored
-
Olivier Couet authored
-
Guilherme Amadio authored
-