Skip to content

Commit 0db3a63

Browse files
committed
Remove libc dependencies (#284)
1 parent 58d8523 commit 0db3a63

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

rosidl_generator_rs/resource/Cargo.toml.em

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ version = "@(package_version)"
44
edition = "2021"
55

66
[dependencies]
7-
libc = "0.2"
87
rosidl_runtime_rs = "0.3"
98
serde = { version = "1", optional = true, features = ["derive"] }
109
@[for dep in dependency_packages]@

rosidl_generator_rs/resource/msg_rmw.rs.em

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@ type_name = msg_spec.structure.namespaced_type.name
1919

2020
#[link(name = "@(package_name)__rosidl_typesupport_c")]
2121
extern "C" {
22-
fn rosidl_typesupport_c__get_message_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> libc::uintptr_t;
22+
fn rosidl_typesupport_c__get_message_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> *const std::os::raw::c_void;
2323
}
2424

2525
#[link(name = "@(package_name)__rosidl_generator_c")]
2626
extern "C" {
2727
fn @(package_name)__@(subfolder)__@(type_name)__init(msg: *mut @(type_name)) -> bool;
28-
fn @(package_name)__@(subfolder)__@(type_name)__Sequence__init(seq: *mut rosidl_runtime_rs::Sequence<@(type_name)>, size: libc::size_t) -> bool;
28+
fn @(package_name)__@(subfolder)__@(type_name)__Sequence__init(seq: *mut rosidl_runtime_rs::Sequence<@(type_name)>, size: usize) -> bool;
2929
fn @(package_name)__@(subfolder)__@(type_name)__Sequence__fini(seq: *mut rosidl_runtime_rs::Sequence<@(type_name)>);
30+
fn @(package_name)__@(subfolder)__@(type_name)__Sequence__copy(in_seq: &rosidl_runtime_rs::Sequence<@(type_name)>, out_seq: *mut rosidl_runtime_rs::Sequence<@(type_name)>) -> bool;
3031
}
3132

3233
@# Drop is not needed, since the default drop glue does the same as fini here:
@@ -80,18 +81,17 @@ impl Default for @(type_name) {
8081
}
8182
8283
impl rosidl_runtime_rs::SequenceAlloc for @(type_name) {
83-
fn sequence_init(seq: &mut rosidl_runtime_rs::Sequence<Self>, size: libc::size_t) -> bool {
84-
// SAFETY: This is safe since a the point is guaranteed to be valid/initialized.
84+
fn sequence_init(seq: &mut rosidl_runtime_rs::Sequence<Self>, size: usize) -> bool {
85+
// SAFETY: This is safe since the pointer is guaranteed to be valid/initialized.
8586
unsafe { @(package_name)__@(subfolder)__@(type_name)__Sequence__init(seq as *mut _, size) }
8687
}
8788
fn sequence_fini(seq: &mut rosidl_runtime_rs::Sequence<Self>) {
88-
// SAFETY: This is safe since a the point is guaranteed to be valid/initialized.
89+
// SAFETY: This is safe since the pointer is guaranteed to be valid/initialized.
8990
unsafe { @(package_name)__@(subfolder)__@(type_name)__Sequence__fini(seq as *mut _) }
9091
}
9192
fn sequence_copy(in_seq: &rosidl_runtime_rs::Sequence<Self>, out_seq: &mut rosidl_runtime_rs::Sequence<Self>) -> bool {
92-
out_seq.resize_to_at_least(in_seq.len());
93-
out_seq.clone_from_slice(in_seq.as_slice());
94-
true
93+
// SAFETY: This is safe since the pointer is guaranteed to be valid/initialized.
94+
unsafe { @(package_name)__@(subfolder)__@(type_name)__Sequence__copy(in_seq, out_seq as *mut _) }
9595
}
9696
}
9797
@@ -103,7 +103,7 @@ impl rosidl_runtime_rs::Message for @(type_name) {
103103
104104
impl rosidl_runtime_rs::RmwMessage for @(type_name) where Self: Sized {
105105
const TYPE_NAME: &'static str = "@(package_name)/@(subfolder)/@(type_name)";
106-
fn get_type_support() -> libc::uintptr_t {
106+
fn get_type_support() -> *const std::os::raw::c_void {
107107
// SAFETY: No preconditions for this function.
108108
unsafe { rosidl_typesupport_c__get_message_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() }
109109
}

rosidl_generator_rs/resource/srv.rs.em

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type_name = srv_spec.namespaced_type.name
2424

2525
#[link(name = "@(package_name)__rosidl_typesupport_c")]
2626
extern "C" {
27-
fn rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> libc::uintptr_t;
27+
fn rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> *const std::os::raw::c_void;
2828
}
2929

3030
// Corresponds to @(package_name)__@(subfolder)__@(type_name)
@@ -34,7 +34,7 @@ impl rosidl_runtime_rs::Service for @(type_name) {
3434
type Request = crate::@(subfolder)::@(type_name)_Request;
3535
type Response = crate::@(subfolder)::@(type_name)_Response;
3636

37-
fn get_type_support() -> libc::uintptr_t {
37+
fn get_type_support() -> *const std::os::raw::c_void {
3838
// SAFETY: No preconditions for this function.
3939
unsafe { rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() }
4040
}
@@ -61,7 +61,7 @@ type_name = srv_spec.namespaced_type.name
6161

6262
#[link(name = "@(package_name)__rosidl_typesupport_c")]
6363
extern "C" {
64-
fn rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> libc::uintptr_t;
64+
fn rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> *const std::os::raw::c_void;
6565
}
6666

6767
// Corresponds to @(package_name)__@(subfolder)__@(type_name)
@@ -71,7 +71,7 @@ type_name = srv_spec.namespaced_type.name
7171
type Request = crate::@(subfolder)::rmw::@(type_name)_Request;
7272
type Response = crate::@(subfolder)::rmw::@(type_name)_Response;
7373

74-
fn get_type_support() -> libc::uintptr_t {
74+
fn get_type_support() -> *const std::os::raw::c_void {
7575
// SAFETY: No preconditions for this function.
7676
unsafe { rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() }
7777
}

0 commit comments

Comments
 (0)