File tree Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -1334,9 +1334,23 @@ pub fn ThreadSafeTransport(config: ThreadSafeTransportConfig) type {
1334
1334
};
1335
1335
}
1336
1336
1337
- pub fn readJsonMessage (reader : * std.io.Reader , allocator : std.mem.Allocator ) (std .io .Reader .ReadAllocError || BaseProtocolHeader .ParseError )! []u8 {
1337
+ pub fn readJsonMessage (
1338
+ reader : * std.io.Reader ,
1339
+ allocator : std.mem.Allocator ,
1340
+ ) (std .io .Reader .Error || std .mem .Allocator .Error || BaseProtocolHeader .ParseError )! []u8 {
1338
1341
const header : BaseProtocolHeader = try .parse (reader );
1339
- return try reader .readAlloc (allocator , header .content_length );
1342
+
1343
+ // Use `readAlloc` once https://github.com/ziglang/zig/issues/24443 has been resolved:
1344
+ // return try reader.readAlloc(allocator, header.content_length);
1345
+
1346
+ const json_message = try allocator .alloc (u8 , header .content_length );
1347
+ errdefer allocator .free (json_message );
1348
+ var writer : std.io.Writer = .fixed (json_message );
1349
+ reader .streamExact (& writer , json_message .len ) catch | err | switch (err ) {
1350
+ error .ReadFailed , error .EndOfStream = > | e | return e ,
1351
+ error .WriteFailed = > unreachable , // fixed buffer
1352
+ };
1353
+ return json_message ;
1340
1354
}
1341
1355
1342
1356
test readJsonMessage {
You can’t perform that action at this time.
0 commit comments