From: Carl Hetherington Date: Sun, 19 Jun 2022 21:00:30 +0000 (+0200) Subject: Stop using static initialisation so that dcpomatic::write() can be called more than... X-Git-Tag: v2.16.15~6 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=fe933ebb2c55b4235fcba5d02af2ba91c272fc88;hp=c26e79a3598ff1b36f800823f178a0829d0fa547 Stop using static initialisation so that dcpomatic::write() can be called more than once. --- diff --git a/src/lib/ext.cc b/src/lib/ext.cc index 96753eca4..5e2ff7d9c 100644 --- a/src/lib/ext.cc +++ b/src/lib/ext.cc @@ -285,12 +285,26 @@ try { ext4_dmask_set (DEBUG_ALL); - /* We rely on static initialization for these */ - static struct ext4_fs fs; - static struct ext4_mkfs_info info; + struct ext4_fs fs; + fs.read_only = false; + fs.bdev = nullptr; + fs.last_inode_bg_id = 0; + fs.jbd_fs = nullptr; + fs.jbd_journal = nullptr; + fs.curr_trans = nullptr; + struct ext4_mkfs_info info; + info.len = 0; info.block_size = 4096; + info.blocks_per_group = 0; info.inode_size = 128; + info.inodes = 0; + info.journal_blocks = 0; + info.dsc_size = 0; + for (int i = 0; i < UUID_SIZE; ++i) { + info.uuid[i] = rand() & 0xff; + } info.journal = false; + info.label = nullptr; #ifdef WIN32 file_windows_name_set(device.c_str());