Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow by Copilot · Pull Request #124202 · dotnet/runtime · GitHub
Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow by Copilot · Pull Request #124202 · dotnet/runtime · GitHub
Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow by Copilot · Pull Request #124202 · dotnet/runtime · GitHub
Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow by Copilot · Pull Request #124202 · dotnet/runtime · GitHub
Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow by Copilot · Pull Request #124202 · dotnet/runtime · GitHub
Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow by Copilot · Pull Request #124202 · dotnet/runtime · GitHub
Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow by Copilot · Pull Request #124202 · dotnet/runtime · GitHub
Skip to content

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow - #124202

Merged
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface
Feb 18, 2026
Merged

Remove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRow#124202
jkoritzinsky merged 13 commits into
mainfrom
copilot/remove-inodewithsize-interface

Conversation

CopilotAI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor
  • Remove INodeWithSize interface and always use IMAGE_REL_SYMBOL_SIZE relocation
  • Remove HasEndPointer flag and ModuleInfoFlags enum
  • Update ModuleInfoRow to have SectionId, Length, Start fields
  • Remove GetLength() method and use Length field directly
  • Remove Size properties from ProxyTypeMapObjectNode and ExternalTypeMapObjectNode
  • Remove double blank lines left by mechanical removal in ~30 files
  • Restore single blank lines between methods and logical code sections
  • Encode dehydrated data length instead of fixup count

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…SIZE reloc
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title [WIP] Remove INodeWithSize interface and update size emissionReplace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
CopilotAI changed the title Replace INodeWithSize.Size property with IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationFeb 9, 2026
@jkoritzinsky

Copy link
Copy Markdown
Member

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove the Flags type there as well.

Finally, update the code in ReadyToRunHeaderNode to require alignment before emitting each entry.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please remove the HasEndPointer flag and the Flags field it goes in. Then, update the native ModuleInfoRow type to have a Start field and a Length field instead of Start and End and remove th...

Done. Removed HasEndPointer flag and ModuleInfoFlags enum. Updated ModuleInfoRow to have Start and Length fields instead of Start, End, and Flags. Added alignment requirement before emitting each entry. (5b50167)

CopilotAI changed the title Remove INodeWithSize interface and use IMAGE_REL_SYMBOL_SIZE relocationRemove INodeWithSize interface, use IMAGE_REL_SYMBOL_SIZE relocation, and restructure ModuleInfoRowFeb 10, 2026

@jkoritzinskyjkoritzinsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot please address this feedback

Comment threadsrc/coreclr/nativeaot/Runtime/TypeManager.h Outdated
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

CopilotAI commented Feb 10, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please address this feedback

All feedback addressed. (cc44d34)

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of method bodies.

@MichalStrehovsky

Copy link
Copy Markdown
Member

The test failures look related. Pulled down a random crashdump with runfo and looks like GC statics are broken. GC statics are one of the things referenced from R2R header.

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

CopilotAI commented Feb 11, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot go over the blank lines deleted in this pull request. Make sure a blank line still separates individual method blocks. Make sure a blank line still separates logically different parts of meth...

Restored single blank lines at all 47 locations across the 30 files. Each location now has exactly one blank line separating method blocks and logical code sections (e.g., between constructor } and next method, between Save() and return, between loop } and next logical section). No double blank lines remain. Build verified clean. (9b06c1e)

@jkoritzinsky

Copy link
Copy Markdown
Member

I found one of the issues: The DehydratedDataNode is the only node type that didn't set its "size" to the size of the output object data. So, we'll need to encode in that data stream the number of fixups so we can correctly delineate between the data and fixup sections.

…encode the size of the dehydrated data blob consistendly with other object nodes.
@jkoritzinsky

Copy link
Copy Markdown
Member

@MichalStrehovsky pushed a fix. Let me know if it looks good to you.

Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>

@MichalStrehovskyMichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice!

@jkoritzinsky
jkoritzinsky merged commit 8e6e74e into mainFeb 18, 2026
93 of 96 checks passed
@jkoritzinsky
jkoritzinsky deleted the copilot/remove-inodewithsize-interface branch February 18, 2026 00:32
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
… and restructure ModuleInfoRow (dotnet#124202)
- [x] Remove INodeWithSize interface and always use
IMAGE_REL_SYMBOL_SIZE relocation
- [x] Remove HasEndPointer flag and ModuleInfoFlags enum
- [x] Update ModuleInfoRow to have SectionId, Length, Start fields
- [x] Remove GetLength() method and use Length field directly
- [x] Remove Size properties from ProxyTypeMapObjectNode and
ExternalTypeMapObjectNode
- [x] Remove double blank lines left by mechanical removal in ~30 files
- [x] Restore single blank lines between methods and logical code
sections
- [x] Encode dehydrated data length instead of fixup count
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/dotnet/runtime/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 20, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants

@jkoritzinsky@stephentoub@MichalStrehovsky