Skip to content

Commit 5b2a10c

Browse files
committed
Fix building of argv
1 parent caa8217 commit 5b2a10c

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

cpp2rust/converter/converter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3704,7 +3704,7 @@ void Converter::ConvertFunctionMain(const clang::FunctionDecl *decl,
37043704
pub fn main() {{
37053705
let mut args: Vec<Vec<u8>> = std::env::args().map(|arg| arg.as_bytes().to_vec()).collect();
37063706
args.iter_mut().for_each(|v| v.push(0));
3707-
let mut argv: Vec<*mut u8> = args.iter().map(|arg| arg.as_ptr() as *mut u8).collect();
3707+
let mut argv: Vec<*mut ::core::ffi::c_char> = args.iter().map(|arg| arg.as_ptr() as *mut ::core::ffi::c_char).collect();
37083708
argv.push(::std::ptr::null_mut());
37093709
unsafe {{
37103710
::std::process::exit(main_0((argv.len() - 1) as i32, argv.as_mut_ptr()) as i32)

cpp2rust/converter/models/converter_refcount.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2165,10 +2165,10 @@ void ConverterRefCount::ConvertFunctionMain(
21652165
if (decl->getNumParams() != 0U) {
21662166
StrCat(std::format(R"(
21672167
pub fn main() {{
2168-
let argv: Vec<Value<Vec<u8>>> = ::std::env::args()
2169-
.map(|x| Rc::new(RefCell::new(x.as_bytes().to_vec())))
2168+
let argv: Vec<Value<Vec<::core::ffi::c_char>>> = ::std::env::args()
2169+
.map(|x| Rc::new(RefCell::new(x.bytes().map(|b| b as ::core::ffi::c_char).collect())))
21702170
.collect();
2171-
let mut argv: Value<Vec<Ptr<u8>>> = Rc::new(RefCell::new(
2171+
let mut argv: Value<Vec<Ptr<::core::ffi::c_char>>> = Rc::new(RefCell::new(
21722172
argv.iter().map(|x| {{ x.borrow_mut().push(0); x.as_pointer() }}).collect(),
21732173
));
21742174
(*argv.borrow_mut()).push(Ptr::null());

0 commit comments

Comments
 (0)