]> git.sesse.net Git - remoteglot/blobdiff - server/serve-analysis.js
Merge commit '83d2eb4'
[remoteglot] / server / serve-analysis.js
index ce1f89d5ca5bf65ae4f2db26ca4a560822831293..de884a3439f68ade5b11b4a16255cb07bd9895ab 100644 (file)
@@ -93,8 +93,19 @@ var replace_json = function(new_json_contents, mtime) {
                }
        }
 
+       var parsed = JSON.parse(new_json_contents);
+
+       if (parsed['internal']) {
+               if (parsed['internal']['grpc_backends'] &&
+                   hash_lookup.need_reinit(parsed['internal']['grpc_backends'])) {
+                       hash_lookup.init(parsed['internal']['grpc_backends']);
+               }
+               delete parsed['internal'];
+               new_json_contents = JSON.stringify(parsed);
+       }
+
        var new_json = {
-               parsed: JSON.parse(new_json_contents),
+               parsed: parsed,
                plain: new_json_contents,
                last_modified: mtime
        };
@@ -121,7 +132,7 @@ var create_json_historic_diff = function(new_json, history_left, new_diff_json,
        }
 
        var histobj = history_left.shift();
-       var diff = delta.JSON_delta.diff(histobj.parsed, new_json.parsed);
+       var diff = delta.JSON_delta.diff(histobj.parsed, new_json.parsed, false);
        var diff_text = JSON.stringify(diff);
        zlib.gzip(diff_text, function(err, buffer) {
                if (err) throw err;
@@ -145,7 +156,7 @@ var reread_file = function(event, filename) {
        if (json_lock == 1) {
                // Already processing; wait a bit.
                json_lock = 2;
-               setTimeout(function() { json_lock = 1; reread_file(event, filename); }, 100);
+               setTimeout(function() { if (json_lock == 2) json_lock = 1; reread_file(event, filename); }, 100);
                return;
        }
        json_lock = 1;