mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Don't die when out of bounds if non-DEBUG. Stops people hitting me when bugs kill their long-running sessions in release versions.
This commit is contained in:
		
							
								
								
									
										19
									
								
								grid.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								grid.c
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: grid.c,v 1.3 2008-09-28 20:34:22 nicm Exp $ */ | /* $Id: grid.c,v 1.4 2009-01-08 21:52:05 nicm Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> |  * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> | ||||||
| @@ -37,15 +37,30 @@ | |||||||
| /* Default grid cell data. */ | /* Default grid cell data. */ | ||||||
| const struct grid_cell grid_default_cell = { ' ', 0, 0, 8, 8 }; | const struct grid_cell grid_default_cell = { ' ', 0, 0, 8, 8 }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifdef DEBUG | ||||||
| #define grid_check_x(gd, px) do {				\ | #define grid_check_x(gd, px) do {				\ | ||||||
| 	if ((px) >= (gd)->sx)					\ | 	if ((px) >= (gd)->sx)					\ | ||||||
| 		log_fatalx("x out of range: %u", px);		\ | 		log_fatalx("x out of range: %u", px);		\ | ||||||
| } while (0) | } while (0) | ||||||
|  |  | ||||||
| #define grid_check_y(gd, py) do {				\ | #define grid_check_y(gd, py) do {				\ | ||||||
| 	if ((py) >= (gd)->hsize + (gd)->sy)			\ | 	if ((py) >= (gd)->hsize + (gd)->sy)			\ | ||||||
| 		log_fatalx("y out of range: %u", py);		\ | 		log_fatalx("y out of range: %u", py);		\ | ||||||
| } while (0) | } while (0) | ||||||
|  | #else | ||||||
|  | #define grid_check_x(gd, px) do {				\ | ||||||
|  | 	if ((px) >= (gd)->sx) {					\ | ||||||
|  | 		log_debug("x out of range: %u", px);		\ | ||||||
|  | 		return;						\ | ||||||
|  | 	}							\ | ||||||
|  | } while (0) | ||||||
|  | #define grid_check_y(gd, py) do {				\ | ||||||
|  | 	if ((py) >= (gd)->hsize + (gd)->sy) {			\ | ||||||
|  | 		log_debug("y out of range: %u", py);		\ | ||||||
|  | 		return;						\ | ||||||
|  | 	}							\ | ||||||
|  | } while (0) | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #define grid_put_cell(gd, px, py, gc) do {			\ | #define grid_put_cell(gd, px, py, gc) do {			\ | ||||||
| 	memcpy(&gd->data[py][px], gc, sizeof gd->data[py][px]);	\ | 	memcpy(&gd->data[py][px], gc, sizeof gd->data[py][px]);	\ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nicholas Marriott
					Nicholas Marriott