@@ -278,6 +278,13 @@ static StatsCounterItem *count_sdata_updates;
278278static StatsCounterItem * count_allocated_bytes ;
279279static GPrivate priv_macro_value = G_PRIVATE_INIT (__free_macro_value );
280280
281+ static inline void
282+ log_msg_update_allocation (LogMessage * self , gssize delta )
283+ {
284+ self -> allocated_bytes += delta ;
285+ stats_counter_add (count_allocated_bytes , delta );
286+ }
287+
281288static void
282289log_msg_update_sdata_slow (LogMessage * self , NVHandle handle , const gchar * name , gssize name_len )
283290{
@@ -327,8 +334,7 @@ log_msg_update_sdata_slow(LogMessage *self, NVHandle handle, const gchar *name,
327334 self -> alloc_sdata = alloc_sdata ;
328335 if (self -> sdata )
329336 {
330- self -> allocated_bytes += ((self -> alloc_sdata - old_alloc_sdata ) * sizeof (self -> sdata [0 ]));
331- stats_counter_add (count_allocated_bytes , (self -> alloc_sdata - old_alloc_sdata ) * sizeof (self -> sdata [0 ]));
337+ log_msg_update_allocation (self , ((self -> alloc_sdata - old_alloc_sdata ) * sizeof (self -> sdata [0 ])));
332338 }
333339 /* ok, we have our own SDATA array now which has at least one free slot */
334340
@@ -577,8 +583,7 @@ log_msg_set_value_with_type(LogMessage *self, NVHandle handle,
577583 {
578584 self -> payload = nv_table_clone (self -> payload , name_len + value_len + 2 );
579585 log_msg_set_flag (self , LF_STATE_OWN_PAYLOAD );
580- self -> allocated_bytes += self -> payload -> size ;
581- stats_counter_add (count_allocated_bytes , self -> payload -> size );
586+ log_msg_update_allocation (self , self -> payload -> size );
582587 }
583588
584589 /* we need a loop here as a single realloc may not be enough. Might help
@@ -598,8 +603,7 @@ log_msg_set_value_with_type(LogMessage *self, NVHandle handle,
598603 break ;
599604 }
600605 guint32 new_size = self -> payload -> size ;
601- self -> allocated_bytes += (new_size - old_size );
602- stats_counter_add (count_allocated_bytes , new_size - old_size );
606+ log_msg_update_allocation (self , (new_size - old_size ));
603607 stats_counter_inc (count_payload_reallocs );
604608 }
605609
@@ -650,8 +654,7 @@ log_msg_unset_value(LogMessage *self, NVHandle handle)
650654 break ;
651655 }
652656 guint32 new_size = self -> payload -> size ;
653- self -> allocated_bytes += (new_size - old_size );
654- stats_counter_add (count_allocated_bytes , new_size - old_size );
657+ log_msg_update_allocation (self , (new_size - old_size ));
655658 stats_counter_inc (count_payload_reallocs );
656659 }
657660
@@ -932,6 +935,7 @@ log_msg_set_tag_by_id_onoff(LogMessage *self, LogTagId id, gboolean on)
932935 if (!log_msg_chk_flag (self , LF_STATE_OWN_TAGS ) && self -> num_tags )
933936 {
934937 self -> tags = g_memdup2 (self -> tags , sizeof (self -> tags [0 ]) * self -> num_tags );
938+ log_msg_update_allocation (self , sizeof (self -> tags [0 ]) * self -> num_tags );
935939 }
936940 log_msg_set_flag (self , LF_STATE_OWN_TAGS );
937941
@@ -961,6 +965,7 @@ log_msg_set_tag_by_id_onoff(LogMessage *self, LogTagId id, gboolean on)
961965 self -> tags = g_realloc (self -> tags , sizeof (self -> tags [0 ]) * self -> num_tags );
962966 else
963967 self -> tags = g_malloc (sizeof (self -> tags [0 ]) * self -> num_tags );
968+ log_msg_update_allocation (self , (self -> num_tags - old_num_tags ) * sizeof (self -> tags [0 ]));
964969 memset (& self -> tags [old_num_tags ], 0 , (self -> num_tags - old_num_tags ) * sizeof (self -> tags [0 ]));
965970
966971 if (inline_tags )
@@ -1277,9 +1282,14 @@ log_msg_set_saddr(LogMessage *self, GSockAddr *saddr)
12771282void
12781283log_msg_set_saddr_ref (LogMessage * self , GSockAddr * saddr )
12791284{
1285+ gssize old_len = 0 ;
12801286 if (log_msg_chk_flag (self , LF_STATE_OWN_SADDR ))
1281- g_sockaddr_unref (self -> saddr );
1287+ {
1288+ old_len = g_sockaddr_len (self -> saddr );
1289+ g_sockaddr_unref (self -> saddr );
1290+ }
12821291 self -> saddr = saddr ;
1292+ log_msg_update_allocation (self , (gssize ) g_sockaddr_len (self -> saddr ) - old_len );
12831293 self -> flags |= LF_STATE_OWN_SADDR ;
12841294}
12851295
@@ -1292,9 +1302,14 @@ log_msg_set_daddr(LogMessage *self, GSockAddr *daddr)
12921302void
12931303log_msg_set_daddr_ref (LogMessage * self , GSockAddr * daddr )
12941304{
1305+ gssize old_len = 0 ;
12951306 if (log_msg_chk_flag (self , LF_STATE_OWN_DADDR ))
1296- g_sockaddr_unref (self -> daddr );
1307+ {
1308+ old_len = g_sockaddr_len (self -> daddr );
1309+ g_sockaddr_unref (self -> daddr );
1310+ }
12971311 self -> daddr = daddr ;
1312+ log_msg_update_allocation (self , (gssize ) g_sockaddr_len (self -> daddr ) - old_len );
12981313 self -> flags |= LF_STATE_OWN_DADDR ;
12991314}
13001315
@@ -1392,8 +1407,7 @@ log_msg_alloc(gsize payload_size)
13921407 msg -> payload = nv_table_init_borrowed (((gchar * ) msg ) + payload_ofs , payload_space , LM_V_MAX );
13931408
13941409 msg -> num_nodes = nodes ;
1395- msg -> allocated_bytes = alloc_size + payload_space ;
1396- stats_counter_add (count_allocated_bytes , msg -> allocated_bytes );
1410+ log_msg_update_allocation (msg , alloc_size );
13971411 return msg ;
13981412}
13991413
@@ -1444,9 +1458,10 @@ log_msg_alloc_clone(LogMessage *original)
14441458 msg = g_malloc (alloc_size );
14451459
14461460 memcpy (msg , original , sizeof (* msg ));
1461+ msg -> allocated_bytes = 0 ;
14471462 msg -> num_nodes = nodes ;
1448- msg -> allocated_bytes = alloc_size ;
1449- stats_counter_add ( count_allocated_bytes , msg -> allocated_bytes );
1463+ log_msg_update_allocation ( msg , alloc_size ) ;
1464+
14501465 return msg ;
14511466}
14521467
@@ -2110,20 +2125,6 @@ log_msg_lookup_time_stamp_name(const gchar *name)
21102125 return -1 ;
21112126}
21122127
2113- gssize
2114- log_msg_get_size (LogMessage * self )
2115- {
2116- if (!self )
2117- return 0 ;
2118-
2119- return
2120- sizeof (LogMessage ) + // msg.static fields
2121- + self -> alloc_sdata * sizeof (self -> sdata [0 ]) +
2122- g_sockaddr_len (self -> saddr ) + g_sockaddr_len (self -> daddr ) +
2123- ((self -> num_tags ) ? sizeof (self -> tags [0 ]) * self -> num_tags : 0 ) +
2124- nv_table_get_memory_consumption (self -> payload ); // msg.payload (nvtable)
2125- }
2126-
21272128#ifdef __linux__
21282129
21292130const gchar *
0 commit comments