Skip to content

Commit fa6858b

Browse files
committed
use safe variant in tests
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
1 parent aa087e5 commit fa6858b

3 files changed

Lines changed: 14 additions & 13 deletions

File tree

mozjs/benches/latin1_string_conversion.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use criterion::{
33
criterion_group, criterion_main, BenchmarkGroup, BenchmarkId, Criterion, Throughput,
44
};
55
use mozjs::context::JSContext;
6-
use mozjs::conversions::jsstr_to_string;
6+
use mozjs::conversions::jsstr_to_string_safe;
77
use mozjs::glue::{CreateJSExternalStringCallbacks, JSExternalStringCallbacksTraps};
88
use mozjs::jsapi::OnNewGlobalHookOption;
99
use mozjs::realm::AutoRealm;
@@ -52,9 +52,7 @@ fn bench_str_repetition(
5252
&latin1_jsstr,
5353
|b, js_str| {
5454
b.iter(|| {
55-
unsafe {
56-
jsstr_to_string(context.raw_cx(), NonNull::new(js_str.get()).unwrap())
57-
};
55+
jsstr_to_string_safe(context, NonNull::new(js_str.get()).unwrap());
5856
})
5957
},
6058
);

mozjs/tests/external_string.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::ptr::NonNull;
88

99
#[cfg(test)]
1010
use mozjs::context::JSContext;
11-
use mozjs::conversions::jsstr_to_string;
11+
use mozjs::conversions::jsstr_to_string_safe;
1212
use mozjs::glue::{CreateJSExternalStringCallbacks, JSExternalStringCallbacksTraps};
1313
use mozjs::jsapi::OnNewGlobalHookOption;
1414
use mozjs::realm::AutoRealm;
@@ -100,7 +100,7 @@ fn external_string() {
100100
callbacks
101101
));
102102
assert_eq!(
103-
jsstr_to_string(context.raw_cx(), NonNull::new(utf16_jsstr.get()).unwrap()),
103+
jsstr_to_string_safe(context, NonNull::new(utf16_jsstr.get()).unwrap()),
104104
utf16_base
105105
);
106106
}
@@ -122,7 +122,7 @@ unsafe fn test_latin1_string(context: &mut JSContext, latin1_base: &str) {
122122
callbacks
123123
));
124124
assert_eq!(
125-
jsstr_to_string(context.raw_cx(), NonNull::new(latin1_jsstr.get()).unwrap()),
125+
jsstr_to_string_safe(context, NonNull::new(latin1_jsstr.get()).unwrap()),
126126
latin1_base
127127
);
128128
}
@@ -143,7 +143,7 @@ unsafe fn test_latin1_string_bytes(context: &mut JSContext, latin1_base: &[u8])
143143
callbacks
144144
));
145145
assert_eq!(
146-
jsstr_to_string(context.raw_cx(), NonNull::new(latin1_jsstr.get()).unwrap()),
146+
jsstr_to_string_safe(context, NonNull::new(latin1_jsstr.get()).unwrap()),
147147
encoding_rs::mem::decode_latin1(latin1_base)
148148
);
149149
}

mozjs/tests/stack_gc_vector.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use std::ptr::{self, NonNull};
66
use std::sync::{LazyLock, Mutex};
77

8-
use mozjs::conversions::jsstr_to_string;
8+
use mozjs::conversions::jsstr_to_string_safe;
99
use mozjs::gc::StackGCVector;
1010
use mozjs::jsapi::{
1111
CompilationType, Handle, HandleString, HandleValue, JSContext, JSSecurityCallbacks, JSString,
@@ -34,29 +34,32 @@ unsafe extern "C" fn content_security_policy_allows(
3434
_body_arg: HandleValue,
3535
can_compile_strings: *mut bool,
3636
) -> bool {
37+
// SAFETY: We are in SM hook
38+
let mut cx = unsafe { mozjs::context::JSContext::from_ptr(NonNull::new(cx).unwrap()) };
39+
let cx = &mut cx;
3740
let parameter_strings = SafeHandle::from_raw(parameter_strings);
3841
assert_eq!(parameter_strings.len(), 2);
3942

4043
let string0 = parameter_strings.at(0).expect("should have a value");
4144
let string0 = NonNull::new(*string0).expect("should be non-null");
42-
assert_eq!(jsstr_to_string(cx, string0), "a".to_string());
45+
assert_eq!(jsstr_to_string_safe(cx, string0), "a".to_string());
4346

4447
let string1 = parameter_strings.at(1).expect("should have a value");
4548
let string1 = NonNull::new(*string1).expect("should be non-null");
46-
assert_eq!(jsstr_to_string(cx, string1), "b".to_string());
49+
assert_eq!(jsstr_to_string_safe(cx, string1), "b".to_string());
4750

4851
let parameter_args = SafeHandle::from_raw(parameter_args);
4952
assert_eq!(parameter_args.len(), 2);
5053

5154
let arg0 = parameter_args.at(0).expect("should have a value");
5255
let string0 = arg0.to_string();
5356
let string0 = NonNull::new(string0).expect("should be non-null");
54-
assert_eq!(jsstr_to_string(cx, string0), "a".to_string());
57+
assert_eq!(jsstr_to_string_safe(cx, string0), "a".to_string());
5558

5659
let arg1 = parameter_args.at(1).expect("should have a value");
5760
let string1 = arg1.to_string();
5861
let string1 = NonNull::new(string1).expect("should be non-null");
59-
assert_eq!(jsstr_to_string(cx, string1), "b".to_string());
62+
assert_eq!(jsstr_to_string_safe(cx, string1), "b".to_string());
6063

6164
*RAN_CSP_CALLBACK.lock().unwrap() = true;
6265
*can_compile_strings = true;

0 commit comments

Comments
 (0)