64-bit alignment in serialised data
The payload in a struct serdata_default is assumed to be at a 64-bit
offset for conversion to/from a dds_{i,o}stream_t and getting padding
calculations in the serialised representation correct.  The definition
did not guarantee this and got it wrong on a 32-bit release build.
This commit computes the required padding at compile time and at
verifies the assumption holds where it matters.
Signed-off-by: Erik Boasson <eb@ilities.com>
			
			
This commit is contained in:
		
							parent
							
								
									2fe4a4ca35
								
							
						
					
					
						commit
						0dd2155f99
					
				
					 2 changed files with 42 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -1614,6 +1614,8 @@ void dds_stream_extract_keyhash (dds_istream_t * __restrict is, dds_keyhash_t *
 | 
			
		|||
 **
 | 
			
		||||
 *******************************************************************************************/
 | 
			
		||||
 | 
			
		||||
DDSRT_STATIC_ASSERT ((offsetof (struct ddsi_serdata_default, data) % 8) == 0);
 | 
			
		||||
 | 
			
		||||
void dds_istream_from_serdata_default (dds_istream_t * __restrict s, const struct ddsi_serdata_default * __restrict d)
 | 
			
		||||
{
 | 
			
		||||
  s->m_buffer = (const unsigned char *) d;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue