Skip to content

Commit 803cf9c

Browse files
authored
Optimize Build::print: Avoid unnecessary heap alloc (#824)
1 parent b030a29 commit 803cf9c

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/lib.rs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,25 +1132,31 @@ impl Build {
11321132
});
11331133

11341134
if let Some(atlmfc_lib) = atlmfc_lib {
1135-
self.print(&format!(
1135+
self.print(&format_args!(
11361136
"cargo:rustc-link-search=native={}",
11371137
atlmfc_lib.display()
11381138
));
11391139
}
11401140
}
11411141

11421142
if self.link_lib_modifiers.is_empty() {
1143-
self.print(&format!("cargo:rustc-link-lib=static={}", lib_name));
1143+
self.print(&format_args!("cargo:rustc-link-lib=static={}", lib_name));
11441144
} else {
11451145
let m = self.link_lib_modifiers.join(",");
1146-
self.print(&format!("cargo:rustc-link-lib=static:{}={}", m, lib_name));
1146+
self.print(&format_args!(
1147+
"cargo:rustc-link-lib=static:{}={}",
1148+
m, lib_name
1149+
));
11471150
}
1148-
self.print(&format!("cargo:rustc-link-search=native={}", dst.display()));
1151+
self.print(&format_args!(
1152+
"cargo:rustc-link-search=native={}",
1153+
dst.display()
1154+
));
11491155

11501156
// Add specific C++ libraries, if enabled.
11511157
if self.cpp {
11521158
if let Some(stdlib) = self.get_cpp_link_stdlib()? {
1153-
self.print(&format!("cargo:rustc-link-lib={}", stdlib));
1159+
self.print(&format_args!("cargo:rustc-link-lib={}", stdlib));
11541160
}
11551161
}
11561162

@@ -2328,7 +2334,7 @@ impl Build {
23282334
ArchSpec::Catalyst(_) => "macosx".to_owned(),
23292335
};
23302336

2331-
self.print(&format!("Detecting {} SDK path for {}", os, sdk));
2337+
self.print(&format_args!("Detecting {} SDK path for {}", os, sdk));
23322338
let sdk_path = if let Some(sdkroot) = env::var_os("SDKROOT") {
23332339
sdkroot
23342340
} else {
@@ -3128,10 +3134,10 @@ impl Build {
31283134
return val.clone();
31293135
}
31303136
if self.emit_rerun_if_env_changed && !provided_by_cargo(v) {
3131-
self.print(&format!("cargo:rerun-if-env-changed={}", v));
3137+
self.print(&format_args!("cargo:rerun-if-env-changed={}", v));
31323138
}
31333139
let r = env::var(v).ok();
3134-
self.print(&format!("{} = {:?}", v, r));
3140+
self.print(&format_args!("{} = {:?}", v, r));
31353141
cache.insert(v.to_string(), r.clone());
31363142
r
31373143
}
@@ -3174,7 +3180,7 @@ impl Build {
31743180
.collect())
31753181
}
31763182

3177-
fn print(&self, s: &str) {
3183+
fn print(&self, s: &dyn Display) {
31783184
if self.cargo_metadata {
31793185
println!("{}", s);
31803186
}

0 commit comments

Comments
 (0)