Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 81e58cf3d5 |
@@ -5316,11 +5316,12 @@ impl CBackend {
|
|||||||
if Self::is_primitive_c_type(&actual_type) {
|
if Self::is_primitive_c_type(&actual_type) {
|
||||||
// For primitive types stored as boxed void*, dereference
|
// For primitive types stored as boxed void*, dereference
|
||||||
self.writeln(&format!("{} {} = *({}*)({});", actual_type, var_name, actual_type, c_expr));
|
self.writeln(&format!("{} {} = *({}*)({});", actual_type, var_name, actual_type, c_expr));
|
||||||
} else if !actual_type.ends_with('*') && actual_type != "void" {
|
} else if actual_type == "LuxString" || actual_type.ends_with('*') || actual_type == "void" {
|
||||||
|
// Pointer types (including LuxString which is typedef char*): simple cast
|
||||||
|
self.writeln(&format!("{} {} = ({})({});", actual_type, var_name, actual_type, c_expr));
|
||||||
|
} else {
|
||||||
// Struct types: cast to pointer and dereference
|
// Struct types: cast to pointer and dereference
|
||||||
self.writeln(&format!("{} {} = *({}*)({});", actual_type, var_name, actual_type, c_expr));
|
self.writeln(&format!("{} {} = *({}*)({});", actual_type, var_name, actual_type, c_expr));
|
||||||
} else {
|
|
||||||
self.writeln(&format!("{} {} = ({})({});", actual_type, var_name, actual_type, c_expr));
|
|
||||||
}
|
}
|
||||||
self.var_types.insert(var_name.clone(), actual_type);
|
self.var_types.insert(var_name.clone(), actual_type);
|
||||||
} else if actual_type.ends_with('*') && actual_type != "void*" {
|
} else if actual_type.ends_with('*') && actual_type != "void*" {
|
||||||
|
|||||||
Reference in New Issue
Block a user