1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00

raw_ostream::indent is used for PadToColumn which often prints more

than 16 spaces. Make the Spaces array wide enough to handle common cases.

llvm-svn: 79890
This commit is contained in:
Dan Gohman 2009-08-24 04:13:01 +00:00
parent 9be7cb663d
commit 0c0f711f50

View File

@ -19,6 +19,7 @@
#include "llvm/Config/config.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include <sys/stat.h>
#include <sys/types.h>
@ -298,14 +299,16 @@ raw_ostream &raw_ostream::operator<<(const format_object_base &Fmt) {
/// indent - Insert 'NumSpaces' spaces.
raw_ostream &raw_ostream::indent(unsigned NumSpaces) {
const char *Spaces = " ";
static const char Spaces[] = " "
" "
" ";
// Usually the indentation is small, handle it with a fastpath.
if (NumSpaces <= 16)
if (NumSpaces <= array_lengthof(Spaces))
return write(Spaces, NumSpaces);
while (NumSpaces) {
unsigned NumToWrite = std::min(NumSpaces, 16U);
unsigned NumToWrite = std::min(NumSpaces, (unsigned)array_lengthof(Spaces));
write(Spaces, NumToWrite);
NumSpaces -= NumToWrite;
}