Skip to content

Commit 4096858

Browse files
authored
update servo-url and fix detection (#789)
1 parent 1410b0b commit 4096858

File tree

4 files changed

+48
-45
lines changed

4 files changed

+48
-45
lines changed

benchmarks/CMakeLists.txt

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ endif()
207207
# Boost
208208
if(ADA_BOOST_URL)
209209
find_package(
210-
Boost 1.80
210+
Boost 1.86
211211
COMPONENTS system
212212
)
213213
endif(ADA_BOOST_URL)
@@ -258,7 +258,7 @@ if(NOT WIN32)
258258
CPMAddPackage(
259259
NAME corrosion
260260
GITHUB_REPOSITORY corrosion-rs/corrosion
261-
VERSION 0.4.4
261+
VERSION 0.5.0
262262
DOWNLOAD_ONLY ON
263263
OPTIONS "Rust_FIND_QUIETLY OFF"
264264
)
@@ -272,22 +272,24 @@ if(RUST_FOUND)
272272
corrosion_import_crate(MANIFEST_PATH "competitors/servo-url/Cargo.toml" NO_LINKER_OVERRIDE PROFILE release)
273273

274274
# Check if servo-url target was created successfully
275-
if(TARGET servo-url)
276-
message(STATUS "servo-url target was created. Linking benchmarks and servo-url.")
277-
target_link_libraries(bench PRIVATE servo-url)
275+
if(TARGET servo_url)
276+
message(STATUS "servo_url target was created. Linking benchmarks and servo_url. ")
277+
target_link_libraries(bench PRIVATE servo_url)
278278
target_compile_definitions(bench PRIVATE ADA_RUST_VERSION="${Rust_VERSION}")
279279

280-
target_link_libraries(benchdata PRIVATE servo-url)
280+
target_link_libraries(benchdata PRIVATE servo_url)
281281
target_compile_definitions(benchdata PRIVATE ADA_RUST_VERSION="${Rust_VERSION}")
282282

283-
target_link_libraries(bbc_bench PRIVATE servo-url)
283+
target_link_libraries(bbc_bench PRIVATE servo_url)
284284
target_compile_definitions(bbc_bench PRIVATE ADA_RUST_VERSION="${Rust_VERSION}")
285285

286-
target_link_libraries(percent_encode PRIVATE servo-url)
286+
target_link_libraries(percent_encode PRIVATE servo_url)
287287
target_compile_definitions(percent_encode PRIVATE ADA_RUST_VERSION="${Rust_VERSION}")
288288

289-
target_link_libraries(wpt_bench PRIVATE servo-url)
289+
target_link_libraries(wpt_bench PRIVATE servo_url)
290290
target_compile_definitions(wpt_bench PRIVATE ADA_RUST_VERSION="${Rust_VERSION}")
291+
else()
292+
message(SEND_ERROR "Rust servo-url target was not created successfully. Likely due to a bug.")
291293
endif()
292294
else()
293295
message(STATUS "Rust/Cargo is unavailable." )

benchmarks/competitors/servo-url/Cargo.lock

Lines changed: 24 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

benchmarks/competitors/servo-url/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
[package]
22
name = "servo-url"
33
version = "0.1.0"
4+
edition = "2021"
45

56
[lib]
67
path = "lib.rs"
78
crate-type = ["cdylib"]
89

910
[dependencies]
10-
url = "2.5.3"
11+
url = "2.5.4"
1112
libc = "0.2"
1213

1314
[profile.release]

benchmarks/competitors/servo-url/lib.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ use libc::{c_char, size_t};
55
extern crate url;
66
extern crate libc;
77

8-
#[no_mangle]
9-
pub unsafe extern "C" fn parse_url(raw_input: *const c_char, raw_input_length: size_t) -> *mut Url {
10-
let input = std::str::from_utf8_unchecked(slice::from_raw_parts(raw_input as *const u8, raw_input_length));
8+
#[unsafe(no_mangle)]
9+
pub extern "C" fn parse_url(raw_input: *const c_char, raw_input_length: size_t) -> *mut Url {
10+
let input = unsafe { std::str::from_utf8_unchecked(slice::from_raw_parts(raw_input as *const u8, raw_input_length)) };
1111
// This code would assume that the URL is parsed successfully:
1212
// let result = Url::parse(input).unwrap();
1313
// Box::into_raw(Box::new(result))
@@ -19,26 +19,26 @@ pub unsafe extern "C" fn parse_url(raw_input: *const c_char, raw_input_length: s
1919
}
2020
}
2121

22-
#[no_mangle]
23-
pub unsafe extern "C" fn parse_url_to_href(raw_input: *const c_char, raw_input_length: size_t) -> *const c_char {
24-
let input = std::str::from_utf8_unchecked(slice::from_raw_parts(raw_input as *const u8, raw_input_length));
22+
#[unsafe(no_mangle)]
23+
pub extern "C" fn parse_url_to_href(raw_input: *const c_char, raw_input_length: size_t) -> *const c_char {
24+
let input = unsafe { std::str::from_utf8_unchecked(slice::from_raw_parts(raw_input as *const u8, raw_input_length)) };
2525
match Url::parse(input) {
2626
Ok(result) => std::ffi::CString::new(result.as_str()).unwrap().into_raw(),
2727
Err(_) => std::ptr::null_mut(),
2828
}
2929
}
3030

31-
#[no_mangle]
32-
pub unsafe extern "C" fn free_url(raw: *mut Url) {
31+
#[unsafe(no_mangle)]
32+
pub extern "C" fn free_url(raw: *mut Url) {
3333
if raw.is_null() {
3434
return;
3535
}
3636

37-
drop(Box::from_raw(raw))
37+
unsafe { drop(Box::from_raw(raw)) }
3838
}
3939

40-
#[no_mangle]
40+
#[unsafe(no_mangle)]
4141
pub unsafe extern fn free_string(ptr: *const c_char) {
4242
// Take the ownership back to rust and drop the owner
43-
let _ = std::ffi::CString::from_raw(ptr as *mut _);
43+
let _ = unsafe { std::ffi::CString::from_raw(ptr as *mut _) };
4444
}

0 commit comments

Comments
 (0)