@@ -100,17 +100,17 @@ pub const Agent = struct {
100100 const identities = in .next (DirectionDBus ).? ;
101101
102102 var ctx : Context = .{
103- .actionId = actionId ,
104- .message = message ,
105- .iconName = iconName ,
106- .cookie = cookie ,
103+ .actionId = try gpa . dupe ( u8 , actionId ) ,
104+ .message = try gpa . dupe ( u8 , message ) ,
105+ .iconName = try gpa . dupe ( u8 , iconName ) ,
106+ .cookie = try gpa . dupe ( u8 , cookie ) ,
107107 .details = std .StringHashMap ([]const u8 ).init (gpa ),
108108 .identities = undefined ,
109109 };
110110 errdefer ctx .details .deinit ();
111111
112112 for (details ) | detail | {
113- try ctx .details .put (detail .key , detail .value );
113+ try ctx .details .put (try gpa . dupe ( u8 , detail .key ), try gpa . dupe ( u8 , detail .value ) );
114114 }
115115 const eql = std .mem .eql ;
116116 var identitiesList = std .ArrayList (Identitie ){};
@@ -132,6 +132,15 @@ pub const Agent = struct {
132132 return ctx ;
133133 }
134134 fn deinit (self : * Context , gpa : Allocator ) void {
135+ gpa .free (self .actionId );
136+ gpa .free (self .message );
137+ gpa .free (self .iconName );
138+ gpa .free (self .cookie );
139+ var it = self .details .iterator ();
140+ while (it .next ()) | entry | {
141+ gpa .free (entry .key_ptr .* );
142+ gpa .free (entry .value_ptr .* );
143+ }
135144 self .details .deinit ();
136145 gpa .free (self .identities );
137146 }
0 commit comments