groupByFragment: make fewer string copies

This commit is contained in:
Justin Viiret 2017-08-04 10:06:20 +10:00 committed by Matthew Barr
parent 8eb55d4242
commit ba1df6412b

View File

@ -2767,17 +2767,13 @@ bool isUsedLiteral(const RoseBuildImpl &build, u32 lit_id) {
} }
static static
rose_literal_id getFragment(const rose_literal_id &lit) { rose_literal_id getFragment(rose_literal_id lit) {
if (lit.s.length() <= ROSE_SHORT_LITERAL_LEN_MAX) { if (lit.s.length() > ROSE_SHORT_LITERAL_LEN_MAX) {
DEBUG_PRINTF("whole lit is frag\n"); // Trim to last ROSE_SHORT_LITERAL_LEN_MAX bytes.
return lit; lit.s.erase(0, lit.s.length() - ROSE_SHORT_LITERAL_LEN_MAX);
} }
DEBUG_PRINTF("fragment: %s\n", dumpString(lit.s).c_str());
rose_literal_id frag = lit; return lit;
frag.s = frag.s.substr(frag.s.length() - ROSE_SHORT_LITERAL_LEN_MAX);
DEBUG_PRINTF("fragment: %s\n", dumpString(frag.s).c_str());
return frag;
} }
static static