Fixed integer overflow in semantic_tokens.Builder.handleComments
This commit is contained in:
		
							parent
							
								
									ab8c65eeda
								
							
						
					
					
						commit
						91643c04c9
					
				| @ -559,7 +559,7 @@ pub fn identifierFromPosition(pos_index: usize, handle: DocumentStore.Handle) [] | ||||
|     if (pos_index + 1 >= text.len) return &[0]u8{}; | ||||
|     var start_idx = pos_index; | ||||
| 
 | ||||
|     while (start_idx > 0 and isSymbolChar(text[start_idx-1])) { | ||||
|     while (start_idx > 0 and isSymbolChar(text[start_idx - 1])) { | ||||
|         start_idx -= 1; | ||||
|     } | ||||
| 
 | ||||
| @ -569,7 +569,7 @@ pub fn identifierFromPosition(pos_index: usize, handle: DocumentStore.Handle) [] | ||||
|     } | ||||
| 
 | ||||
|     if (end_idx <= start_idx) return &[0]u8{}; | ||||
|     return text[start_idx .. end_idx]; | ||||
|     return text[start_idx..end_idx]; | ||||
| } | ||||
| fn isSymbolChar(char: u8) bool { | ||||
|     return std.ascii.isAlNum(char) or char == '_'; | ||||
|  | ||||
| @ -136,6 +136,9 @@ const Builder = struct { | ||||
| 
 | ||||
|     /// Highlight normal comments and doc comments. | ||||
|     fn handleComments(self: *Builder, from: usize, to: usize) !void { | ||||
|         if (from == to) return; | ||||
|         std.debug.assert(from < to); | ||||
| 
 | ||||
|         const source = self.handle.tree.source; | ||||
| 
 | ||||
|         var i: usize = from; | ||||
|  | ||||
| @ -73,7 +73,6 @@ const Server = struct { | ||||
| 
 | ||||
|             const result = ",\"result\":"; | ||||
|             const msg = rest[id_end + result.len .. rest.len - 1]; | ||||
| 
 | ||||
|             if (std.mem.eql(u8, msg, expected)) { | ||||
|                 return; | ||||
|             } else { | ||||
| @ -108,7 +107,7 @@ const Server = struct { | ||||
| fn startZls() !*std.ChildProcess { | ||||
|     std.debug.print("\n", .{}); | ||||
| 
 | ||||
|     var process = try std.ChildProcess.init(&[_][]const u8{"zig-out/bin/zls" ++ suffix}, allocator); | ||||
|     var process = try std.ChildProcess.init(&[_][]const u8{"zig-cache/bin/zls" ++ suffix}, allocator); | ||||
|     process.stdin_behavior = .Pipe; | ||||
|     process.stdout_behavior = .Pipe; | ||||
|     process.stderr_behavior = .Pipe; //std.ChildProcess.StdIo.Inherit; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user