diff options
author | whtsht <[email protected]> | 2024-10-01 08:00:54 +0900 |
---|---|---|
committer | GitHub <[email protected]> | 2024-09-30 16:00:54 -0700 |
commit | af63b4f8b7a659ab78a75af97416c042ca357a3b (patch) | |
tree | 6e8f0f8f9bacb193dc582c6ed1ca655526af2b26 /yjit/src/asm/mod.rs | |
parent | 30507a4aed83ee0712fbe84875b1d9bec1f1dd70 (diff) |
Return an Iterator Instead of a Vector in `addrs_to_pages` Method (#11725)
* Returning an iterator instead of a vec
* Avoid changing the meaning of end_page
---------
Co-authored-by: Takashi Kokubun <[email protected]>
Notes
Notes:
Merged-By: k0kubun <[email protected]>
Diffstat (limited to 'yjit/src/asm/mod.rs')
-rw-r--r-- | yjit/src/asm/mod.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/yjit/src/asm/mod.rs b/yjit/src/asm/mod.rs index bd56074b96..a113a41c73 100644 --- a/yjit/src/asm/mod.rs +++ b/yjit/src/asm/mod.rs @@ -432,7 +432,7 @@ impl CodeBlock { } /// Convert an address range to memory page indexes against a num_pages()-sized array. - pub fn addrs_to_pages(&self, start_addr: CodePtr, end_addr: CodePtr) -> Vec<usize> { + pub fn addrs_to_pages(&self, start_addr: CodePtr, end_addr: CodePtr) -> impl Iterator<Item = usize> { let mem_start = self.mem_block.borrow().start_ptr().raw_addr(self); let mem_end = self.mem_block.borrow().mapped_end_ptr().raw_addr(self); assert!(mem_start <= start_addr.raw_addr(self)); @@ -441,12 +441,12 @@ impl CodeBlock { // Ignore empty code ranges if start_addr == end_addr { - return vec![]; + return (0..0).into_iter(); } let start_page = (start_addr.raw_addr(self) - mem_start) / self.page_size; let end_page = (end_addr.raw_addr(self) - mem_start - 1) / self.page_size; - (start_page..=end_page).collect() // TODO: consider returning an iterator + (start_page..end_page + 1).into_iter() } /// Get a (possibly dangling) direct pointer to the current write position |