Skip to content

Commit ae6ff8f

Browse files
committed
cli: Fix crash when packing
1 parent 257a963 commit ae6ff8f

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

src/cli/action_pack.cpp

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -322,24 +322,24 @@ bool ActionPack::pack_mrao(
322322
pack::ChannelPack_t pack[] = {
323323
{.srcChan = 0,
324324
.dstChan = 0,
325-
.srcData = metalnessData->data<uint8_t>(),
326-
.comps = metalnessData->channels(),
325+
.srcData = metalnessData ? metalnessData->data<uint8_t>() : nullptr,
326+
.comps = metalnessData ? metalnessData->channels() : 1,
327327
.constant = mconst},
328328
{.srcChan = 0,
329329
.dstChan = 1,
330-
.srcData = roughnessData->data<uint8_t>(),
331-
.comps = roughnessData->channels(),
330+
.srcData = roughnessData ? roughnessData->data<uint8_t>() : nullptr,
331+
.comps = roughnessData ? roughnessData->channels() : 1,
332332
.constant = rconst},
333333
{.srcChan = 0,
334334
.dstChan = 2,
335-
.srcData = aoData->data<uint8_t>(),
336-
.comps = aoData->channels(),
335+
.srcData = aoData ? aoData->data<uint8_t>() : nullptr,
336+
.comps = aoData ? aoData->channels() : 1,
337337
.constant = aoconst},
338338
{
339339
.srcChan = 0,
340340
.dstChan = 3,
341-
.srcData = tmaskData->data<uint8_t>(),
342-
.comps = tmaskData->channels(),
341+
.srcData = tmaskData ? tmaskData->data<uint8_t>() : nullptr,
342+
.comps = tmaskData ? tmaskData->channels() : 1,
343343
.constant = 1,
344344
}};
345345

@@ -355,9 +355,14 @@ bool ActionPack::pack_mrao(
355355
}
356356

357357
// Free up some mem
358-
roughnessData->clear();
359-
aoData->clear();
360-
metalnessData->clear();
358+
if (roughnessData)
359+
roughnessData->clear();
360+
if (aoData)
361+
aoData->clear();
362+
if (metalnessData)
363+
metalnessData->clear();
364+
if (tmaskData)
365+
tmaskData->clear();
361366

362367
// If user requested clamp, do that now
363368
if (clampw > 0 || clamph > 0) {
@@ -373,7 +378,8 @@ bool ActionPack::pack_mrao(
373378

374379
bool success = true;
375380
if ((success = save_vtf(outpath, outImage, opts, false)))
376-
std::cout << fmt::format("Finished processing {}\n", outpath.string());
381+
if (!opts.get<bool>(opts::quiet))
382+
std::cout << fmt::format("Finished {} ({} KiB)\n", outpath.string(), file_->GetSize() / 1024);
377383
return success;
378384
}
379385

0 commit comments

Comments
 (0)