Skip to content

Fix ChildLocker copy ctor deletion. - #380

Merged
rfrm-opendap merged 1 commit into
masterfrom
fix/377-childlocker-copy-ctor
Oct 27, 2026
Merged

rfrm-opendap merged 1 commit into
masterfrom
fix/377-childlocker-copy-ctor

Conversation

@rfrm-opendap

Copy link
Copy Markdown
Contributor

Fix ChildLocker copy ctor deletion. (#377)

Description

While refactoring the copy ctor for ChildLocker was attempted declared but the given argument was given the type of the superclass instead of the subclass. This was not an issue as we never try and copy these. This change corrects the argument to actually delete the copy ctor (which prevents the other copy ctors from being generated).

** Fixes #377 **

Tasks

  • Ticket exists and is linked in title
  • No TODOs added

@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 0f4de5ff-2142-4627-8d1b-9b27c359621a
Commits

Reviewing files that changed from the base of the PR and between 90bed3f and c0f76d3.

Files selected for processing: 1
  • MarshallerThread.h

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Summary
  • Corrected the deleted ChildLocker copy-constructor declaration to take const ChildLocker & instead of const Locker &. This prevents other copy constructors from being generated.
Author Lines added Lines removed
Rene Ferdinand Rivera Morell 1 1

The deleted ChildLocker constructor now takes a const ChildLocker & instead of a const Locker &.

Changes: ChildLocker Copy Constructor

Layer / File(s) Summary
Correct the deleted constructor
MarshallerThread.h
The deleted constructor declaration now takes a const ChildLocker &.

Priority: Low

Estimated code review effort: 1 (Trivial) | ~2 minutes

Change: Bug fix

Possibly related PRs

  • OPENDAP/libdap4#381: Adds ABI comparison checks that can assess the impact of this public constructor declaration change.
Merge Risk: Minimal · up to c0f76

This declaration-only fix is ready to merge; no concrete ABI or runtime risk is identified.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surv… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title is concise, specific, and accurately describes the correction to the ChildLocker copy-constructor deletion.
Description check Passed The description explains the defect, the correction, and the linked issue. It includes the relevant task checklist, although it does not include the template's explicit Reference ticket field or test …
Linked Issues check Passed Issue #377 requires that the ChildLocker copy constructor be deleted, with ChildLocker as the argument type, matching ldap::Locker. The whole-PR diff (mergeBase 90bed3f to head c0f76d3) changes Marsha…
Out of Scope Changes check Passed The whole-PR diff contains one hunk in MarshallerThread.h, a single-line change to the deleted copy-constructor declaration of ChildLocker. This hunk implements #377 directly. The file list at head sh…
Full details: Description check

Explanation

The description explains the defect, the correction, and the linked issue. It includes the relevant task checklist, although it does not include the template's explicit Reference ticket field or test checklist item.

Full details: Linked Issues check

Explanation

Issue #377 requires that the ChildLocker copy constructor be deleted, with ChildLocker as the argument type, matching ldap::Locker. The whole-PR diff (mergeBase 90bed3f to head c0f76d3) changes MarshallerThread.h line 76 from ChildLocker(const Locker &rhs) = delete; to ChildLocker(const ChildLocker &rhs) = delete;. This is the coding change the issue asks for. The PR adds no test. The issue asks for no test, so no test requirement applies. The PR author's ABI question is a review comment, not an issue requirement, so it does not affect this verdict.

Full details: Out of Scope Changes check

Explanation

The whole-PR diff contains one hunk in MarshallerThread.h, a single-line change to the deleted copy-constructor declaration of ChildLocker. This hunk implements #377 directly. The file list at head shows no other changed paths in the reviewed diff output. The diff output was truncated at 16000 bytes, so the full file list was not read. The diff returned only the MarshallerThread.h hunk, so no additional changed hunks were observed in the returned output.

Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 2 functions across 1 files.

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks the header line,
The copy rule is now aligned.
A ChildLocker cannot copy,
Its deleted constructor says so plainly.
The rabbit hops away, content.

Comment @coderabbitai help to get the list of available commands.

@ndp-opendap ndp-opendap left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

!!

@rfrm-opendap

Copy link
Copy Markdown
Contributor Author

Is the ABI change in this a concern?

While refactoring the copy ctor for ChildLocker was attempted declared but the given argument was given the type of the superclass instead of the subclass. This was not an issue as we never try and copy these. This change corrects the argument to actually delete the copy ctor (which prevents the other copy ctors from being generated).

Fixes #377
@rfrm-opendap
rfrm-opendap force-pushed the fix/377-childlocker-copy-ctor branch from 3473520 to c0f76d3 Compare October 27, 2026 21:54
@sonarqubecloud

Copy link
Copy Markdown

@rfrm-opendap
rfrm-opendap marked this pull request as ready for review October 27, 2026 22:00
@rfrm-opendap
rfrm-opendap merged commit e849401 into master Oct 27, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ChildLocker copy ctor is not deleted.

3 participants