@@ -340,34 +340,34 @@
340 340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sprintf(buf+7,"%04d", code);
341 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return buf;
342 342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
343 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
344 344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Adds v to the API-internal cleanup mechanism. key must be a unique
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** key for the given element. Adding another item with that key may
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** free the previous one (depending on its reference count). If
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** freeOnError is true then v is passed to cson_value_free() if the
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** key cannot be inserted, otherweise ownership of v is not changed on
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** error. Failure to insert a key may be caused by any of the
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** following:
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Adds v to the API-internal cleanup mechanism. key is ingored
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (legacy). If freeOnError is true then v is passed to
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** cson_value_free() if the key cannot be inserted, otherweise
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ownership of v is not changed on error. Failure to insert an item
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** may be caused by any of the following:
352 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
353 351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** - Allocation error.
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - g.json.gc.o is NULL
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - g.json.gc.a is NULL
355 353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** - key is NULL or empty.
356 354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
357 355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns 0 on success.
358 356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
359 357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** On success, ownership of v is transfered to (or shared with)
360 358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** g.json.gc, and v will be valid until that object is cleaned up or
361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** its key is replaced via another call to this function.
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** some internal code incorrectly removes it from the gc (which we
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** never do).
362 361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
363 362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int json_gc_add( char const * key, cson_value * v, char freeOnError ){
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int const rc = cson_object_set( g.json.gc.o, key, v );
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( NULL != g.json.gc.o );
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int const rc = cson_array_append( g.json.gc.a, v );
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( NULL != g.json.gc.a );
366 365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (0 != rc) && freeOnError ){
367 366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value_free( v );
368 367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (0==rc) && "Adding item to GC failed." );
369 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
370 370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
371 371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
372 372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
373 373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -781,13 +781,13 @@
781 781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
782 782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* g.json.gc is our "garbage collector" - where we put JSON values
783 783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
which need a long lifetime but don't have a logical parent to put
784 784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
them in.
785 785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- v = cson_value_new_object();
786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ v = cson_value_new_array();
787 787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.json.gc.v = v;
788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.gc.o = cson_value_get_object(v);
788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.json.gc.a = cson_value_get_array(v);
789 789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
790 790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
791 791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.json.param holds the JSONized counterpart of fossil's
792 792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_parameter_xxx() family of data. We store them as JSON, as
793 793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
opposed to using fossil's data directly, because we can retain
@@ -1412,11 +1412,11 @@
1412 1412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double span;
1413 1413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
span = END_TIMER;
1414 1414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* i'm actually seeing sub-ms runtimes in some tests, but a time of
1415 1415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0 is "just wrong", so we'll bump that up to 1ms.
1416 1416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_object_set(o,"procTimeMs", cson_value_new_integer((cson_int_t)((span>0.0)?span:1)));
1417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_object_set(o,"procTimeMs", cson_value_new_integer((cson_int_t)((span>1.0)?span:1)));
1418 1418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1419 1419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(g.json.warnings.v){
1420 1420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tmp = g.json.warnings.v;
1421 1421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SET("warnings");
1422 1422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1423 1423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!