「view this page in B3 βῆτα server」

Revisions №21314

branch: rosetta:commits 「№21314」
Commited by: lyskov-ai
GitHub Pull Request link: 「№764」
Merge: 「0c38201cd」「e0b1cb2f6」  code diff
Scheduled at: 2026-09-18 14:38:32.989894
linux.clang linux.gcc linux.srlz mac.clang
debug
release
unit
mac.clang.python38.PyRosetta.unit ubuntu.clang.cxx11thread.serialization.python38.PyRosetta.unit mpi mpi.serialization build.header build.levels build.ninja_debug beautification code_quality.cppcheck code_quality.merge_size serialization code_quality.submodule_regression integration.mpi integration.release_debug integration.tensorflow integration.thread integration.torch integration performance profile linux.clang.score linux.gcc.score mac.clang.score scripts.pyrosetta scripts.rosetta.parse scripts.rosetta.validate scripts.rosetta.verify util.apps windows.build.debug windows.build.release

Pull Request №764 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/copy-ctor-drops-members Merge: 0c38201cdcd83a9217d947a1604b4317f71c6831←e0b1cb2f6565c1d2336c2838b655f0e6bc05e7b7 Copy missing data members in hand-written copy ctors / assignment operators ---------------- Merge commit message: Copy missing data members in hand-written copy ctors / assignment operators A sweep of hand-written copy constructors and copy-assignment operators turned up 30 classes that copy most of their data members but silently skip one or two. In each case the skipped member is configuration that the object is expected to carry with it, not a cache or scratch state, so the copy (usually produced by clone()) behaves differently from the original. Several of the skipped members have no default member initializer, so the copy left them indeterminate rather than merely stale -- MembraneInfo::membrane_core_, BestHotspotCstMover::cb_force_constant_, SSElementLengthFilter::threshold_, RRComparer*::absolute_threshold_, RotamerRecovery::ignore_unrecognized_res_, CircularPermutation::ignore_chain_, MPDockingMover::jump_num_ and SizeInSegmentsRequirement::size_. BondedResidueSelector's copy constructor needed more than an added initializer: it set use_input_set_selector_ and then called set_input_set(), which resets that flag to false, so a copy of a selector-driven instance always fell back to the (empty) input set. It is now a plain member-wise copy. AbrelaxApplication::trRosetta_cst_generator_ is declared under #ifdef USE_TENSORFLOW, so its initializer carries the same guard. Each new initializer is placed in declaration order so no -Wreorder warning is introduced. Detector hits that were verified as deliberate are left alone: caches and scratch state (Energies::nblist_, RigidBodyPerturbMover::rb_delta_, GraftSwitchMover::orig_pose_), observer links, back-pointers to an owning object, const members that a copy-assignment cannot write (the pcs* PseudocontactShiftData family), and classes whose copy body re-derives the members through initialize() or a copy_* helper.

...