From a42857d29160cf087e8de369da02414fad3bc898 Mon Sep 17 00:00:00 2001 From: teoxoy <28601907+teoxoy@users.noreply.github.com> Date: Thu, 5 Jan 2023 12:28:57 +0100 Subject: [PATCH] [hlsl-out] simplify `write_default_init` --- src/back/hlsl/writer.rs | 26 +++++--------------------- tests/out/hlsl/access.hlsl | 2 +- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/src/back/hlsl/writer.rs b/src/back/hlsl/writer.rs index d119df6f28..59050455a0 100644 --- a/src/back/hlsl/writer.rs +++ b/src/back/hlsl/writer.rs @@ -2842,28 +2842,12 @@ impl<'a, W: fmt::Write> super::Writer<'a, W> { /// Helper function that write default zero initialization fn write_default_init(&mut self, module: &Module, ty: Handle) -> BackendResult { - match module.types[ty].inner { - TypeInner::Array { - size: crate::ArraySize::Constant(const_handle), - base, - .. - } => { - write!(self.out, "{{")?; - let count = module.constants[const_handle].to_array_length().unwrap(); - for i in 0..count { - if i != 0 { - write!(self.out, ",")?; - } - self.write_default_init(module, base)?; - } - write!(self.out, "}}")?; - } - _ => { - write!(self.out, "(")?; - self.write_type(module, ty)?; - write!(self.out, ")0")?; - } + write!(self.out, "(")?; + self.write_type(module, ty)?; + if let TypeInner::Array { base, size, .. } = module.types[ty].inner { + self.write_array_size(module, base, size)?; } + write!(self.out, ")0")?; Ok(()) } diff --git a/tests/out/hlsl/access.hlsl b/tests/out/hlsl/access.hlsl index 35a96e1187..632692ad9c 100644 --- a/tests/out/hlsl/access.hlsl +++ b/tests/out/hlsl/access.hlsl @@ -253,7 +253,7 @@ ret_Constructarray5_int_ Constructarray5_int_(int arg0, int arg1, int arg2, int float4 foo_vert(uint vi : SV_VertexID) : SV_Position { float foo = (float)0; - int c2_[5] = {(int)0,(int)0,(int)0,(int)0,(int)0}; + int c2_[5] = (int[5])0; foo = 0.0; float baz_1 = foo;