fix memoy leak of crc msg
still don't work with time
This commit is contained in:
		
							
								
								
									
										19
									
								
								mac_sender.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								mac_sender.c
									
									
									
									
									
								
							| @@ -126,10 +126,12 @@ void MacSender(void *argument) { | ||||
| 					} else { | ||||
| 						// Checksum error, send original message again | ||||
| 						if(lastSentMsgPtr != NULL) { | ||||
| 							retCode = osMemoryPoolFree(memPool, queueMsg.anyPtr); | ||||
| 							CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE); | ||||
| 							//retCode = osMemoryPoolFree(memPool, queueMsg.anyPtr); | ||||
| 							//CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE); | ||||
|  | ||||
| 							memcpy(queueMsg.anyPtr, lastSentMsgPtr, sizeof(lastSentMsgPtr)); | ||||
| 							queueMsg.type = TO_PHY; | ||||
| 							queueMsg.anyPtr = lastSentMsgPtr; | ||||
| 							//queueMsg.anyPtr = lastSentMsgPtr; | ||||
| 							retCode = osMessageQueuePut( | ||||
| 								queue_phyS_id, | ||||
| 								&queueMsg, | ||||
| @@ -240,7 +242,7 @@ void MacSender(void *argument) { | ||||
|  | ||||
| 				msg = osMemoryPoolAlloc(memPool, 0); // TODO - Leak of memory | ||||
| 				if(msg == NULL) { | ||||
| 					printf("Memory allocation failed\r\n"); | ||||
| 					printf("Memory allocation failed #1\r\n"); | ||||
| 					assert(false); | ||||
| 				} | ||||
| 				msg[0] = src.raw; | ||||
| @@ -254,8 +256,15 @@ void MacSender(void *argument) { | ||||
| 				CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE); | ||||
|  | ||||
| 				if(dst.addr != BROADCAST_ADDRESS) { | ||||
| 					lastSentMsgPtr = osMemoryPoolAlloc(memPool, osWaitForever); | ||||
| 					if(dst.sapi == CHAT_SAPI) { | ||||
| 						lastSentMsgPtr = osMemoryPoolAlloc(memPool, 0); | ||||
| 						if(lastSentMsgPtr == NULL) { | ||||
| 							printf("Memory allocation failed #2\r\n"); | ||||
| 							assert(false); | ||||
| 						} | ||||
| 						memcpy(lastSentMsgPtr, msg, length+4); | ||||
| 						// TODO test if station is online | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				queueMsg.anyPtr = msg; | ||||
|   | ||||
							
								
								
									
										14
									
								
								main.h
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								main.h
									
									
									
									
									
								
							| @@ -139,3 +139,17 @@ typedef union { | ||||
| 	}; | ||||
| 	uint8_t raw; | ||||
| } Status; | ||||
|  | ||||
| typedef union { | ||||
| 	struct { | ||||
| 		bool_t nothing0: 1;			// MSB | ||||
| 		bool_t chat: 1; | ||||
| 		bool_t nothing2: 1; | ||||
| 		bool_t time: 1; | ||||
| 		bool_t nothing4: 1; | ||||
| 		bool_t nothing5: 1; | ||||
| 		bool_t nothing6: 1; | ||||
| 		bool_t nothing7: 1;			// LSB | ||||
| 	}; | ||||
| 	uint8_t raw; | ||||
| } SapiToken; | ||||
|   | ||||
| @@ -120,7 +120,7 @@ | ||||
|         <SetRegEntry> | ||||
|           <Number>0</Number> | ||||
|           <Key>EVENTREC_CNF</Key> | ||||
|           <Name>-l2 -a1 -s0 -f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</Name> | ||||
|           <Name>-l0 -a1 -s0 -f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</Name> | ||||
|         </SetRegEntry> | ||||
|         <SetRegEntry> | ||||
|           <Number>0</Number> | ||||
| @@ -145,7 +145,7 @@ | ||||
|         <SetRegEntry> | ||||
|           <Number>0</Number> | ||||
|           <Key>ST-LINKIII-KEIL_SWO</Key> | ||||
|           <Name>-U066DFF485153826687131237 -O8398 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP (ARM Core") -D00(5BA02477) -L00(0) -TO131075 -TC216000000 -TT216000000 -TP21 -TDS806B -TDT0 -TDC1F -TIE1 -TIP1 -FO7 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name> | ||||
|           <Name>-U066DFF485153826687131237 -O8398 -SF1800 -C0 -A0 -I2 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP (ARM Core") -D00(5BA02477) -L00(0) -TO131075 -TC216000000 -TT216000000 -TP21 -TDS806B -TDT0 -TDC1F -TIE1 -TIP1 -FO7 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name> | ||||
|         </SetRegEntry> | ||||
|         <SetRegEntry> | ||||
|           <Number>0</Number> | ||||
| @@ -153,40 +153,7 @@ | ||||
|           <Name>UL2CM3(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM))</Name> | ||||
|         </SetRegEntry> | ||||
|       </TargetDriverDllRegistry> | ||||
|       <Breakpoint> | ||||
|         <Bp> | ||||
|           <Number>0</Number> | ||||
|           <Type>0</Type> | ||||
|           <LineNumber>18</LineNumber> | ||||
|           <EnabledFlag>1</EnabledFlag> | ||||
|           <Address>134311210</Address> | ||||
|           <ByteObject>0</ByteObject> | ||||
|           <HtxType>0</HtxType> | ||||
|           <ManyObjects>0</ManyObjects> | ||||
|           <SizeOfObject>0</SizeOfObject> | ||||
|           <BreakByAccess>0</BreakByAccess> | ||||
|           <BreakIfRCount>1</BreakIfRCount> | ||||
|           <Filename>.\mac_receiver.c</Filename> | ||||
|           <ExecCommand></ExecCommand> | ||||
|           <Expression>\\tokenring_project\mac_receiver.c\18</Expression> | ||||
|         </Bp> | ||||
|         <Bp> | ||||
|           <Number>1</Number> | ||||
|           <Type>0</Type> | ||||
|           <LineNumber>199</LineNumber> | ||||
|           <EnabledFlag>1</EnabledFlag> | ||||
|           <Address>0</Address> | ||||
|           <ByteObject>0</ByteObject> | ||||
|           <HtxType>0</HtxType> | ||||
|           <ManyObjects>0</ManyObjects> | ||||
|           <SizeOfObject>0</SizeOfObject> | ||||
|           <BreakByAccess>0</BreakByAccess> | ||||
|           <BreakIfRCount>0</BreakIfRCount> | ||||
|           <Filename>.\main.c</Filename> | ||||
|           <ExecCommand></ExecCommand> | ||||
|           <Expression></Expression> | ||||
|         </Bp> | ||||
|       </Breakpoint> | ||||
|       <Breakpoint/> | ||||
|       <WatchWindow1> | ||||
|         <Ww> | ||||
|           <count>0</count> | ||||
| @@ -208,11 +175,6 @@ | ||||
|           <WinNumber>1</WinNumber> | ||||
|           <ItemText>lastToken</ItemText> | ||||
|         </Ww> | ||||
|         <Ww> | ||||
|           <count>4</count> | ||||
|           <WinNumber>1</WinNumber> | ||||
|           <ItemText>queue_macData_id</ItemText> | ||||
|         </Ww> | ||||
|       </WatchWindow1> | ||||
|       <MemoryWindow1> | ||||
|         <Mm> | ||||
| @@ -287,7 +249,7 @@ | ||||
|         <EnableFlashSeq>0</EnableFlashSeq> | ||||
|         <EnableLog>0</EnableLog> | ||||
|         <Protocol>2</Protocol> | ||||
|         <DbgClock>10000000</DbgClock> | ||||
|         <DbgClock>1800000</DbgClock> | ||||
|       </DebugDescription> | ||||
|     </TargetOption> | ||||
|   </Target> | ||||
|   | ||||
| @@ -10,7 +10,7 @@ | ||||
|       <TargetName>Target 1</TargetName> | ||||
|       <ToolsetNumber>0x4</ToolsetNumber> | ||||
|       <ToolsetName>ARM-ADS</ToolsetName> | ||||
|       <pCCUsed>5060960::V5.06 update 7 (build 960)::C:\Program Files (x86)\ARM_Compiler_5.06u7</pCCUsed> | ||||
|       <pCCUsed>5060960::V5.06 update 7 (build 960)::..\..\Program Files (x86)\ARM_Compiler_5.06u7</pCCUsed> | ||||
|       <uAC6>0</uAC6> | ||||
|       <TargetOption> | ||||
|         <TargetCommonOption> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user