From 0272ab6cdac340df51de07385a841580f201f69a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 30 May 2023 16:43:45 +1000 Subject: [PATCH] Cleanup: avoid copy & unnecessary allocation creating temporary path --- source/blender/io/usd/intern/usd_capi_export.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/blender/io/usd/intern/usd_capi_export.cc b/source/blender/io/usd/intern/usd_capi_export.cc index 7902d6b13d0..3811e19e9e0 100644 --- a/source/blender/io/usd/intern/usd_capi_export.cc +++ b/source/blender/io/usd/intern/usd_capi_export.cc @@ -364,17 +364,18 @@ static void export_endjob(void *customdata) static void create_temp_path_for_usdz_export(const char *filepath, blender::io::usd::ExportJobData *job) { - char file[FILE_MAX]; - BLI_path_split_file_part(filepath, file, FILE_MAX); - char *usdc_file = BLI_str_replaceN(file, ".usdz", ".usdc"); + char usdc_file[FILE_MAX]; + STRNCPY(usdc_file, BLI_path_basename(filepath)); + + if (BLI_path_extension_check(usdc_file, ".usdz")) { + BLI_path_extension_replace(usdc_file, sizeof(usdc_file), ".usdc"); + } char usdc_temp_filepath[FILE_MAX]; BLI_path_join(usdc_temp_filepath, FILE_MAX, BKE_tempdir_session(), "USDZ", usdc_file); STRNCPY(job->unarchived_filepath, usdc_temp_filepath); STRNCPY(job->usdz_filepath, filepath); - - MEM_freeN(usdc_file); } static void set_job_filepath(blender::io::usd::ExportJobData *job, const char *filepath)