Skip to content

Commit 3c16e46

Browse files
committed
Remember loaded files earlier to prevent race conditions, fixes #501
1 parent 4012a00 commit 3c16e46

File tree

9 files changed

+24
-19
lines changed

9 files changed

+24
-19
lines changed

dist/protobuf.js

Lines changed: 11 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js.gz

17 Bytes
Binary file not shown.

dist/protobuf.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/root.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,10 @@ RootPrototype.load = function load(filename, callback) {
8080
try {
8181
if (util.isString(source) && source.charAt(0) === "{")
8282
source = JSON.parse(source);
83-
if (!util.isString(source)) {
83+
if (!util.isString(source))
8484
self.setOptions(source.options).addJSON(source.nested);
85-
self.files.push(filename);
86-
} else {
85+
else {
8786
var parsed = require("./parse")(source, self);
88-
self.files.push(filename);
8987
if (parsed.imports)
9088
parsed.imports.forEach(function(name) {
9189
fetch(self.resolvePath(filename, name));
@@ -117,6 +115,7 @@ RootPrototype.load = function load(filename, callback) {
117115
// Skip if already loaded
118116
if (self.files.indexOf(filename) > -1)
119117
return;
118+
self.files.push(filename);
120119

121120
// Shortcut bundled definitions
122121
if (filename in common) {

tests/data/common.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,6 @@ import "google/protobuf/duration.proto";
55
import "google/protobuf/empty.proto";
66
import "google/protobuf/struct.proto";
77
import "google/protobuf/timestamp.proto";
8+
9+
message Something {
10+
}

tests/data/file1.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import "common.proto";

tests/data/file2.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import "common.proto";

0 commit comments

Comments
 (0)