forked from epagris/FreeRTOS-Kernel
		
	Fix the defect that Heap_1.c may waste first portBYTE_ALIGNMENT bytes of ucHeap[] (#238)
* Fix the defect that Heap_1.c may waste first 8 bytes of ucHeap[] * Fix the same byte waste issue in heap_2
This commit is contained in:
		
							parent
							
								
									5f290e4559
								
							
						
					
					
						commit
						1fb4e847ed
					
				@ -96,7 +96,7 @@ void * pvPortMalloc( size_t xWantedSize )
 | 
			
		||||
        if( pucAlignedHeap == NULL )
 | 
			
		||||
        {
 | 
			
		||||
            /* Ensure the heap starts on a correctly aligned boundary. */
 | 
			
		||||
            pucAlignedHeap = ( uint8_t * ) ( ( ( portPOINTER_SIZE_TYPE ) & ucHeap[ portBYTE_ALIGNMENT ] ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) );
 | 
			
		||||
            pucAlignedHeap = ( uint8_t * ) ( ( ( portPOINTER_SIZE_TYPE ) & ucHeap[ portBYTE_ALIGNMENT - 1 ] ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Check there is enough room left for the allocation and. */
 | 
			
		||||
 | 
			
		||||
@ -266,7 +266,7 @@ static void prvHeapInit( void )
 | 
			
		||||
    uint8_t * pucAlignedHeap;
 | 
			
		||||
 | 
			
		||||
    /* Ensure the heap starts on a correctly aligned boundary. */
 | 
			
		||||
    pucAlignedHeap = ( uint8_t * ) ( ( ( portPOINTER_SIZE_TYPE ) & ucHeap[ portBYTE_ALIGNMENT ] ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) );
 | 
			
		||||
    pucAlignedHeap = ( uint8_t * ) ( ( ( portPOINTER_SIZE_TYPE ) & ucHeap[ portBYTE_ALIGNMENT - 1 ] ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) );
 | 
			
		||||
 | 
			
		||||
    /* xStart is used to hold a pointer to the first item in the list of free
 | 
			
		||||
     * blocks.  The void cast is used to prevent compiler warnings. */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user