Simplify.

llvm-svn: 140789
This commit is contained in:
Devang Patel 2011-09-29 17:06:40 +00:00
parent 4d01ace4fd
commit e5a8f2f9f3
1 changed files with 17 additions and 11 deletions

View File

@ -27,6 +27,16 @@ GCOVFile::~GCOVFile() {
DeleteContainerPointers(Functions);
}
/// isGCDAFile - Return true if Format identifies a .gcda file.
static bool isGCDAFile(GCOVFormat Format) {
return Format == GCDA_402 || Format == GCDA_404;
}
/// isGCNOFile - Return true if Format identifies a .gcno file.
static bool isGCNOFile(GCOVFormat Format) {
return Format == GCNO_402 || Format == GCNO_404;
}
/// read - Read GCOV buffer.
bool GCOVFile::read(GCOVBuffer &Buffer) {
GCOVFormat Format = Buffer.readGCOVFormat();
@ -36,20 +46,16 @@ bool GCOVFile::read(GCOVBuffer &Buffer) {
unsigned i = 0;
while (1) {
GCOVFunction *GFun = NULL;
if (Format == GCDA_402 || Format == GCDA_404) {
if (i < Functions.size())
GFun = Functions[i];
} else
if (isGCDAFile(Format)) {
// Use existing function while reading .gcda file.
assert (i < Functions.size() && ".gcda data does not match .gcno data");
GFun = Functions[i];
} else if (isGCNOFile(Format)){
GFun = new GCOVFunction();
if (GFun && GFun->read(Buffer, Format)) {
if (Format == GCNO_402 || Format == GCNO_404)
Functions.push_back(GFun);
Functions.push_back(GFun);
}
else {
delete GFun;
if (!GFun || !GFun->read(Buffer, Format))
break;
}
++i;
}
return true;