Skip to content

Commit b98d619

Browse files
committed
examples: Remove remaining CString allocations on string literals
These allocations and runtime assertions can all be replaced with a `CStr` directly wrapping a binary-string literal, as long as it is null-terminated.
1 parent 0484777 commit b98d619

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

examples/src/bin/texture.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::default::Default;
2-
use std::ffi::CString;
2+
use std::ffi::CStr;
33
use std::io::Cursor;
44
use std::mem::{self, align_of};
55
use std::os::raw::c_void;
@@ -573,7 +573,7 @@ fn main() {
573573
.create_pipeline_layout(&layout_create_info, None)
574574
.unwrap();
575575

576-
let shader_entry_name = CString::new("main").unwrap();
576+
let shader_entry_name = CStr::from_bytes_with_nul_unchecked(b"main\0");
577577
let shader_stage_create_infos = [
578578
vk::PipelineShaderStageCreateInfo {
579579
module: vertex_shader_module,

examples/src/bin/triangle.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use ash::util::*;
22
use ash::vk;
33
use examples::*;
44
use std::default::Default;
5-
use std::ffi::CString;
5+
use std::ffi::CStr;
66
use std::io::Cursor;
77
use std::mem;
88
use std::mem::align_of;
@@ -226,7 +226,7 @@ fn main() {
226226
.create_pipeline_layout(&layout_create_info, None)
227227
.unwrap();
228228

229-
let shader_entry_name = CString::new("main").unwrap();
229+
let shader_entry_name = CStr::from_bytes_with_nul_unchecked(b"main\0");
230230
let shader_stage_create_infos = [
231231
vk::PipelineShaderStageCreateInfo {
232232
module: vertex_shader_module,

examples/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub use ash::{Device, Instance};
1111
use std::borrow::Cow;
1212
use std::cell::RefCell;
1313
use std::default::Default;
14-
use std::ffi::{CStr, CString};
14+
use std::ffi::CStr;
1515
use std::ops::Drop;
1616
use std::os::raw::c_char;
1717

@@ -218,7 +218,7 @@ impl ExampleBase {
218218
.build(&event_loop)
219219
.unwrap();
220220
let entry = Entry::linked();
221-
let app_name = CString::new("VulkanTriangle").unwrap();
221+
let app_name = CStr::from_bytes_with_nul_unchecked(b"VulkanTriangle\0");
222222

223223
let layer_names = [CStr::from_bytes_with_nul_unchecked(
224224
b"VK_LAYER_KHRONOS_validation\0",
@@ -236,9 +236,9 @@ impl ExampleBase {
236236
extension_names_raw.push(DebugUtils::name().as_ptr());
237237

238238
let appinfo = vk::ApplicationInfo::builder()
239-
.application_name(&app_name)
239+
.application_name(app_name)
240240
.application_version(0)
241-
.engine_name(&app_name)
241+
.engine_name(app_name)
242242
.engine_version(0)
243243
.api_version(vk::make_api_version(0, 1, 0, 0));
244244

0 commit comments

Comments
 (0)