Bläddra i källkod

Ndless fixed malloc() alignment

Dan ELKOUBY 11 år sedan
förälder
incheckning
a791b0f932
1 ändrade filer med 4 tillägg och 13 borttagningar
  1. 4 13
      src/graphics.c

+ 4 - 13
src/graphics.c

@@ -17,7 +17,6 @@ unsigned lcd_control_bkp;
 
 #define BUFFER_SIZE 320 * 240 * 2
 unsigned short *buffer_front = NULL, *buffer_back = NULL, *buffer_os;
-unsigned buffer_front_offset, buffer_back_offset;
 
 /*
  * Buffer management
@@ -25,8 +24,8 @@ unsigned buffer_front_offset, buffer_back_offset;
 
 void buffer_allocate()
 {
-	buffer_front = (unsigned short *) malloc(BUFFER_SIZE + 8);
-	buffer_back = (unsigned short *) malloc(BUFFER_SIZE + 8);
+	buffer_front = (unsigned short *) malloc(BUFFER_SIZE);
+	buffer_back = (unsigned short *) malloc(BUFFER_SIZE);
 
 	if (buffer_front == NULL || buffer_back == NULL)
 	{
@@ -35,11 +34,6 @@ void buffer_allocate()
 		exit(0);
 	}
 
-	buffer_front_offset = 8 - ((unsigned) buffer_front & 0x7);
-	buffer_back_offset = 8 - ((unsigned) buffer_back & 0x7);
-	buffer_front = (unsigned short *) ((unsigned) buffer_front + buffer_front_offset);
-	buffer_back = (unsigned short *) ((unsigned) buffer_back + buffer_back_offset);
-
 	buffer_os = (unsigned short *) *lcd_base;
 	*lcd_base = (unsigned) buffer_front;
 
@@ -51,8 +45,8 @@ void buffer_allocate()
 
 void buffer_free()
 {
-	free((unsigned short *) ((unsigned) buffer_front - buffer_front_offset));
-	free((unsigned short *) ((unsigned) buffer_back - buffer_back_offset));
+	free(buffer_front);
+	free(buffer_back);
 
 	*lcd_base = (unsigned) buffer_os;
 
@@ -64,11 +58,8 @@ void buffer_swap()
 	lcd_vsync();
 
 	unsigned short *buffer_front_tmp = buffer_front;
-	unsigned buffer_front_offset_tmp = buffer_front_offset;
 	buffer_front = buffer_back;
-	buffer_front_offset = buffer_back_offset;
 	buffer_back = buffer_front_tmp;
-	buffer_back_offset = buffer_front_offset_tmp;
 
 	*lcd_base = (unsigned) buffer_front;
 }