Skip to content

Commit ad0d84f

Browse files
tekknolagik0kubun
authored andcommitted
Move get_class_name into cruby
1 parent 9dab8cd commit ad0d84f

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

zjit/src/cruby.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,6 +1106,18 @@ pub mod test_utils {
11061106
#[cfg(test)]
11071107
pub use test_utils::*;
11081108

1109+
/// Get class name from a class pointer.
1110+
pub fn get_class_name(class: VALUE) -> String {
1111+
// type checks for rb_class2name()
1112+
if unsafe { RB_TYPE_P(class, RUBY_T_MODULE) || RB_TYPE_P(class, RUBY_T_CLASS) } {
1113+
Some(class)
1114+
} else {
1115+
None
1116+
}.and_then(|class| unsafe {
1117+
cstr_to_rust_string(rb_class2name(class))
1118+
}).unwrap_or_else(|| "Unknown".to_string())
1119+
}
1120+
11091121
/// Interned ID values for Ruby symbols and method names.
11101122
/// See [type@crate::cruby::ID] and usages outside of YJIT.
11111123
pub(crate) mod ids {

zjit/src/hir.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::{
55
cruby::*, options::get_option, hir_type::types::Fixnum, options::DumpHIR, profile::get_or_create_iseq_payload
66
};
77
use std::{cell::RefCell, collections::{HashMap, HashSet}, ffi::c_void, mem::{align_of, size_of}, ptr, slice::Iter};
8-
use crate::hir_type::{Type, types, get_class_name};
8+
use crate::hir_type::{Type, types};
99

1010
#[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)]
1111
pub struct InsnId(pub usize);

zjit/src/hir_type/mod.rs

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
use crate::cruby::{Qfalse, Qnil, Qtrue, VALUE, RUBY_T_ARRAY, RUBY_T_STRING, RUBY_T_HASH};
33
use crate::cruby::{rb_cInteger, rb_cFloat, rb_cArray, rb_cHash, rb_cString, rb_cSymbol, rb_cObject, rb_cTrueClass, rb_cFalseClass, rb_cNilClass};
44
use crate::cruby::ClassRelationship;
5+
use crate::cruby::get_class_name;
56
use crate::hir::PtrPrintMap;
67

78
#[derive(Copy, Clone, Debug, PartialEq)]
@@ -63,20 +64,6 @@ pub struct Type {
6364

6465
include!("hir_type.inc.rs");
6566

66-
/// Get class name from a class pointer.
67-
pub fn get_class_name(class: VALUE) -> String {
68-
use crate::cruby::{RB_TYPE_P, RUBY_T_MODULE, RUBY_T_CLASS};
69-
use crate::cruby::{cstr_to_rust_string, rb_class2name};
70-
// type checks for rb_class2name()
71-
if unsafe { RB_TYPE_P(class, RUBY_T_MODULE) || RB_TYPE_P(class, RUBY_T_CLASS) } {
72-
Some(class)
73-
} else {
74-
None
75-
}.and_then(|class| unsafe {
76-
cstr_to_rust_string(rb_class2name(class))
77-
}).unwrap_or_else(|| "Unknown".to_string())
78-
}
79-
8067
fn write_spec(f: &mut std::fmt::Formatter, printer: &TypePrinter) -> std::fmt::Result {
8168
let ty = printer.inner;
8269
match ty.spec {

0 commit comments

Comments
 (0)