I just decided. Braces on their own lines.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3668 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
49
src/trace.c
49
src/trace.c
@ -34,7 +34,8 @@ static int64_t _trace_ts()
|
||||
{
|
||||
int64_t result = 0;
|
||||
struct timespec ts;
|
||||
if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {
|
||||
if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0)
|
||||
{
|
||||
result = (ts.tv_sec * 1e9 + ts.tv_nsec) / 1e3;
|
||||
}
|
||||
return result;
|
||||
@ -42,12 +43,14 @@ static int64_t _trace_ts()
|
||||
|
||||
static void _trace_append(tf_trace_t* trace, const char* buffer, size_t size)
|
||||
{
|
||||
if (trace->write_offset + size >= k_buffer_size) {
|
||||
if (trace->write_offset + size >= k_buffer_size)
|
||||
{
|
||||
trace->buffer[trace->write_offset] = '\0';
|
||||
trace->write_offset = 0;
|
||||
}
|
||||
|
||||
if (trace->write_offset + size < k_buffer_size) {
|
||||
if (trace->write_offset + size < k_buffer_size)
|
||||
{
|
||||
memcpy(trace->buffer + trace->write_offset, buffer, size);
|
||||
trace->write_offset += size;
|
||||
trace->buffer[trace->write_offset++] = '\n';
|
||||
@ -56,7 +59,8 @@ static void _trace_append(tf_trace_t* trace, const char* buffer, size_t size)
|
||||
|
||||
void tf_trace_counter(tf_trace_t* trace, const char* name, int argc, const char** arg_names, const int64_t* arg_values)
|
||||
{
|
||||
if (!trace) {
|
||||
if (!trace)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@ -73,18 +77,22 @@ void tf_trace_counter(tf_trace_t* trace, const char* name, int argc, const char*
|
||||
|
||||
void tf_trace_begin(tf_trace_t* trace, const char* name)
|
||||
{
|
||||
if (!trace) {
|
||||
if (!trace)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
char line[1024];
|
||||
int p = snprintf(line, sizeof(line), "{\"ph\": \"B\", \"pid\": %d, \"ts\": %" PRId64 ", \"name\": \"", getpid(), _trace_ts());
|
||||
for (const char* c = name; *c && p < (int)sizeof(line); c++) {
|
||||
switch (*c) {
|
||||
for (const char* c = name; *c && p < (int)sizeof(line); c++)
|
||||
{
|
||||
switch (*c)
|
||||
{
|
||||
case '"':
|
||||
case '\\':
|
||||
line[p++] = '\\';
|
||||
if (p < (int)sizeof(line)) {
|
||||
if (p < (int)sizeof(line))
|
||||
{
|
||||
line[p++] = *c;
|
||||
}
|
||||
break;
|
||||
@ -99,7 +107,8 @@ void tf_trace_begin(tf_trace_t* trace, const char* name)
|
||||
|
||||
void tf_trace_end(tf_trace_t* trace)
|
||||
{
|
||||
if (!trace) {
|
||||
if (!trace)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@ -110,7 +119,8 @@ void tf_trace_end(tf_trace_t* trace)
|
||||
|
||||
char* tf_trace_export(tf_trace_t* trace)
|
||||
{
|
||||
if (!trace) {
|
||||
if (!trace)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -120,14 +130,16 @@ char* tf_trace_export(tf_trace_t* trace)
|
||||
int begin = newline ? newline - trace->buffer : 0;
|
||||
size_t size = 0;
|
||||
size += snprintf(buffer, k_buffer_size, "{\"displayTimeUnit\": \"ns\",\n\"traceEvents\": [\n");
|
||||
if (begin) {
|
||||
if (begin)
|
||||
{
|
||||
size_t this_size = strlen(trace->buffer + begin);
|
||||
memcpy(buffer + size, trace->buffer + begin, this_size);
|
||||
size += this_size;
|
||||
}
|
||||
memcpy(buffer + size, trace->buffer, trace->write_offset);
|
||||
size += trace->write_offset;
|
||||
if (size > 2 && buffer[size - 1] == '\n' && buffer[size - 2] == ',') {
|
||||
if (size > 2 && buffer[size - 1] == '\n' && buffer[size - 2] == ',')
|
||||
{
|
||||
buffer[size - 2] = '\n';
|
||||
size--;
|
||||
}
|
||||
@ -140,11 +152,13 @@ char* tf_trace_export(tf_trace_t* trace)
|
||||
static int _tf_trace_sqlite_callback(unsigned int t, void* c, void* p, void* x)
|
||||
{
|
||||
tf_trace_t* trace = c;
|
||||
switch (t) {
|
||||
switch (t)
|
||||
{
|
||||
case SQLITE_TRACE_STMT:
|
||||
{
|
||||
const char* statement = x;
|
||||
if (statement[0] != '-' || statement[1] != '-') {
|
||||
if (statement[0] != '-' || statement[1] != '-')
|
||||
{
|
||||
tf_trace_begin(trace, statement);
|
||||
}
|
||||
}
|
||||
@ -158,9 +172,12 @@ static int _tf_trace_sqlite_callback(unsigned int t, void* c, void* p, void* x)
|
||||
|
||||
void tf_trace_sqlite(tf_trace_t* trace, sqlite3* sqlite)
|
||||
{
|
||||
if (sqlite) {
|
||||
if (sqlite)
|
||||
{
|
||||
sqlite3_trace_v2(sqlite, SQLITE_TRACE_STMT | SQLITE_TRACE_PROFILE, _tf_trace_sqlite_callback, trace);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlite3_trace_v2(sqlite, 0, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user