pushing released serdata:s onto a freelist was dropped by accident in the rewriting of them
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
		
							parent
							
								
									29f542b916
								
							
						
					
					
						commit
						ef65101ad7
					
				
					 1 changed files with 7 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -53,9 +53,9 @@ static void serdata_free_wrap (void *elem)
 | 
			
		|||
{
 | 
			
		||||
#ifndef NDEBUG
 | 
			
		||||
  struct ddsi_serdata_default *d = elem;
 | 
			
		||||
  assert(os_atomic_ld32(&d->c.refc) == 1);
 | 
			
		||||
  assert(os_atomic_ld32(&d->c.refc) == 0);
 | 
			
		||||
#endif
 | 
			
		||||
  ddsi_serdata_unref(elem);
 | 
			
		||||
  dds_free(elem);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ddsi_serdatapool_free (struct serdatapool * pool)
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +200,9 @@ static bool serdata_default_eqkey_nokey (const struct ddsi_serdata *acmn, const
 | 
			
		|||
static void serdata_default_free(struct ddsi_serdata *dcmn)
 | 
			
		||||
{
 | 
			
		||||
  struct ddsi_serdata_default *d = (struct ddsi_serdata_default *)dcmn;
 | 
			
		||||
  dds_free (d);
 | 
			
		||||
  assert(os_atomic_ld32(&d->c.refc) == 0);
 | 
			
		||||
  if (!nn_freelist_push (&gv.serpool->freelist, d))
 | 
			
		||||
    dds_free (d);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void serdata_default_init(struct ddsi_serdata_default *d, const struct ddsi_sertopic_default *tp, enum ddsi_serdata_kind kind)
 | 
			
		||||
| 
						 | 
				
			
			@ -231,6 +233,8 @@ static struct ddsi_serdata_default *serdata_default_new(const struct ddsi_sertop
 | 
			
		|||
  struct ddsi_serdata_default *d;
 | 
			
		||||
  if ((d = nn_freelist_pop (&gv.serpool->freelist)) == NULL)
 | 
			
		||||
    d = serdata_default_allocnew(gv.serpool);
 | 
			
		||||
  else
 | 
			
		||||
    os_atomic_st32(&d->c.refc, 1);
 | 
			
		||||
  serdata_default_init(d, tp, kind);
 | 
			
		||||
  return d;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue