Merge pull request #10 from Kobolog/master

Unsigned line counters.
This commit is contained in:
François-Xavier Bourlet 2013-06-25 13:45:08 -07:00
commit 3a2e9df723

View File

@ -390,8 +390,8 @@ public:
/*************** A TRACE ***************/ /*************** A TRACE ***************/
struct Trace { struct Trace {
void* addr; void* addr;
unsigned idx; size_t idx;
Trace(): Trace():
addr(0), idx(0) {} addr(0), idx(0) {}
@ -1605,13 +1605,13 @@ class TraceResolver:
class SourceFile { class SourceFile {
public: public:
typedef std::vector<std::pair<size_t, std::string> > lines_t; typedef std::vector<std::pair<unsigned, std::string> > lines_t;
SourceFile() {} SourceFile() {}
SourceFile(const std::string& path): _file(new std::ifstream(path.c_str())) {} SourceFile(const std::string& path): _file(new std::ifstream(path.c_str())) {}
bool is_open() const { return _file->is_open(); } bool is_open() const { return _file->is_open(); }
lines_t& get_lines(size_t line_start, size_t line_count, lines_t& lines) { lines_t& get_lines(unsigned line_start, unsigned line_count, lines_t& lines) {
using namespace std; using namespace std;
// This function make uses of the dumbest algo ever: // This function make uses of the dumbest algo ever:
// 1) seek(0) // 1) seek(0)
@ -1625,7 +1625,7 @@ public:
_file->clear(); _file->clear();
_file->seekg(0); _file->seekg(0);
string line; string line;
size_t line_idx; unsigned line_idx;
for (line_idx = 1; line_idx < line_start; ++line_idx) { for (line_idx = 1; line_idx < line_start; ++line_idx) {
getline(*_file, line); getline(*_file, line);
@ -1665,7 +1665,7 @@ public:
return lines; return lines;
} }
lines_t get_lines(size_t line_start, size_t line_count) { lines_t get_lines(unsigned line_start, unsigned line_count) {
lines_t lines; lines_t lines;
return get_lines(line_start, line_count, lines); return get_lines(line_start, line_count, lines);
} }
@ -1724,17 +1724,17 @@ public:
typedef SourceFile::lines_t lines_t; typedef SourceFile::lines_t lines_t;
lines_t get_snippet(const std::string& filename, lines_t get_snippet(const std::string& filename,
size_t line_start, size_t context_size) { unsigned line_start, unsigned context_size) {
SourceFile& src_file = get_src_file(filename); SourceFile& src_file = get_src_file(filename);
size_t start = line_start - context_size / 2; unsigned start = line_start - context_size / 2;
return src_file.get_lines(start, context_size); return src_file.get_lines(start, context_size);
} }
lines_t get_combined_snippet( lines_t get_combined_snippet(
const std::string& filename_a, size_t line_a, const std::string& filename_a, unsigned line_a,
const std::string& filename_b, size_t line_b, const std::string& filename_b, unsigned line_b,
size_t context_size) { unsigned context_size) {
SourceFile& src_file_a = get_src_file(filename_a); SourceFile& src_file_a = get_src_file(filename_a);
SourceFile& src_file_b = get_src_file(filename_b); SourceFile& src_file_b = get_src_file(filename_b);
@ -1746,12 +1746,12 @@ public:
} }
lines_t get_coalesced_snippet(const std::string& filename, lines_t get_coalesced_snippet(const std::string& filename,
size_t line_a, size_t line_b, size_t context_size) { unsigned line_a, unsigned line_b, unsigned context_size) {
SourceFile& src_file = get_src_file(filename); SourceFile& src_file = get_src_file(filename);
using std::min; using std::max; using std::min; using std::max;
size_t a = min(line_a, line_b); unsigned a = min(line_a, line_b);
size_t b = max(line_a, line_b); unsigned b = max(line_a, line_b);
if ((b - a) < (context_size / 3)) { if ((b - a) < (context_size / 3)) {
return src_file.get_lines((a + b - context_size + 1) / 2, return src_file.get_lines((a + b - context_size + 1) / 2,
@ -1940,7 +1940,7 @@ private:
} else { } else {
fprintf(os, "%s ", indent); fprintf(os, "%s ", indent);
} }
fprintf(os, "%4li: %s\n", it->first, it->second.c_str()); fprintf(os, "%4u: %s\n", it->first, it->second.c_str());
if (it-> first == source_loc.line) { if (it-> first == source_loc.line) {
colorize.set_color(Color::reset); colorize.set_color(Color::reset);
} }