Skip to content

Prohibit inheritance of interface with versioned methods#8982

Merged
dyemanov merged 3 commits intoFirebirdSQL:masterfrom
Noremos:cloop_version_methods_inherence
Apr 9, 2026
Merged

Prohibit inheritance of interface with versioned methods#8982
dyemanov merged 3 commits intoFirebirdSQL:masterfrom
Noremos:cloop_version_methods_inherence

Conversation

@Noremos
Copy link
Copy Markdown
Contributor

@Noremos Noremos commented Apr 7, 2026

This is a fix for: #8980

@aafemt
Copy link
Copy Markdown
Contributor

aafemt commented Apr 7, 2026

Because public API has C++11 enabled, static_assert on size of VMT for every class wouldn't hurt in FirebirdInterface.idl as a prevention against the same problem in the future. Changes in any interface that kick the assert for other classes must be prohibited.

@dyemanov dyemanov linked an issue Apr 7, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Member

@AlexPeshkoff AlexPeshkoff left a comment

Choose a reason for hiding this comment

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

I think this patch is enough for our needs on practice. This is the first time for >10 years when need to add method to base interface took place, therefore nothing except added check is really needed.

Copy link
Copy Markdown
Member

@asfernandes asfernandes left a comment

Choose a reason for hiding this comment

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

Is the PR title correct or should it be 'inheritance'?

@Noremos Noremos changed the title Prohibit inherence of interface with versioned methods Prohibit inheritance of interface with versioned methods Apr 7, 2026
@Noremos
Copy link
Copy Markdown
Contributor Author

Noremos commented Apr 7, 2026

Is the PR title correct or should it be 'inheritance'?

My bad. Now the title is correct

@dyemanov dyemanov merged commit cb1f828 into FirebirdSQL:master Apr 9, 2026
19 of 23 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.

Trace plugin compatibility is broken

5 participants