| 388 | } |
| 389 | |
| 390 | __forceinline char * allocateString ( const char * text, uint64_t length, const LineInfo * at, bool tempString = false ) { |
| 391 | auto astr = stringHeap->impl_allocateString(this, text, length, at); |
| 392 | if ( !astr && length ) throw_out_of_memory(true, length+1, at); |
| 393 | if ( instrumentAllocations ) onAllocateString(astr, length, tempString, at ? *at : LineInfo()); |
| 394 | return astr; |
| 395 | } |
| 396 | |
| 397 | __forceinline char * allocateString ( const string & str, const LineInfo * at, bool tempString = false ) { |
| 398 | auto astr = stringHeap->impl_allocateString(this, str.c_str(), uint64_t(str.size()), at); |
no test coverage detected