From 49a14a01b93b4551fa07e495a9c100fe8178c518 Mon Sep 17 00:00:00 2001 From: ds5678 <49847914+ds5678@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:45:42 -0700 Subject: [PATCH] Improve MDNode operands implementation --- sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs b/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs index 41edce3..5c9a52a 100644 --- a/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs +++ b/sources/LLVMSharp.Interop/Extensions/LLVMValueRef.cs @@ -459,7 +459,7 @@ public readonly LLVMLinkage Linkage } } - public readonly uint MDNodeOperandsCount => (Kind == LLVMValueKind.LLVMMetadataAsValueValueKind) ? LLVM.GetMDNodeNumOperands(this) : default; + public readonly uint MDNodeOperandsCount => (IsAMDNode == null) ? LLVM.GetMDNodeNumOperands(this) : default; public readonly string Name { @@ -895,19 +895,20 @@ public readonly void GetBasicBlocks(Span destination) public readonly LLVMValueRef[] GetMDNodeOperands() { - if (Kind != LLVMValueKind.LLVMMetadataAsValueValueKind) + uint count = MDNodeOperandsCount; + if (count == 0) { return []; } - var destination = new LLVMValueRef[MDNodeOperandsCount]; + var destination = new LLVMValueRef[count]; GetMDNodeOperands(destination); return destination; } public readonly void GetMDNodeOperands(Span destination) { - if (Kind != LLVMValueKind.LLVMMetadataAsValueValueKind) + if (IsAMDNode == null) { return; }