@@ -125,7 +125,6 @@ pub const Plugin = struct {
125
125
/// IMPORTANT: it's the caller's responsibility to free the returned string
126
126
pub fn getConfig (self : Plugin , key : []const u8 ) ! ? []u8 {
127
127
const key_mem = self .allocateBytes (key );
128
- defer key_mem .free ();
129
128
const offset = extism .config_get (key_mem .offset );
130
129
const c_len = extism .length (offset );
131
130
if (offset == 0 or c_len == 0 ) {
@@ -149,22 +148,19 @@ pub const Plugin = struct {
149
148
150
149
pub fn log (self : Plugin , level : LogLevel , data : []const u8 ) void {
151
150
const mem = self .allocateBytes (data );
152
- defer mem .free ();
153
151
self .logMemory (level , mem );
154
152
}
155
153
156
154
/// IMPORTANT: it's the caller's responsibility to free the returned string
157
155
pub fn getVar (self : Plugin , key : []const u8 ) ! ? []u8 {
158
156
const key_mem = self .allocateBytes (key );
159
- defer key_mem .free ();
160
157
const offset = extism .var_get (key_mem .offset );
161
158
const c_len = extism .length (offset );
162
159
if (offset == 0 or c_len == 0 ) {
163
160
return null ;
164
161
}
165
162
const memory = Memory .init (offset , c_len );
166
163
defer memory .free ();
167
- defer memory .free ();
168
164
const value = try memory .loadAlloc (self .allocator );
169
165
return value ;
170
166
}
@@ -181,9 +177,7 @@ pub const Plugin = struct {
181
177
182
178
pub fn setVar (self : Plugin , key : []const u8 , value : []const u8 ) void {
183
179
const key_mem = self .allocateBytes (key );
184
- defer key_mem .free ();
185
180
const val_mem = self .allocateBytes (value );
186
- defer val_mem .free ();
187
181
extism .var_set (key_mem .offset , val_mem .offset );
188
182
}
189
183
@@ -197,23 +191,20 @@ pub const Plugin = struct {
197
191
198
192
pub fn removeVar (self : Plugin , key : []const u8 ) void {
199
193
const mem = self .allocateBytes (key );
200
- defer mem .free ();
201
194
extism .var_set (mem .offset , 0 );
202
195
}
203
196
204
197
pub fn request (self : Plugin , http_request : http.HttpRequest , body : ? []const u8 ) ! http.HttpResponse {
205
198
const json = try std .json .stringifyAlloc (self .allocator , http_request , .{ .emit_null_optional_fields = false });
206
199
defer self .allocator .free (json );
207
200
const req = self .allocateBytes (json );
208
- defer req .free ();
209
201
const req_body = b : {
210
202
if (body ) | bdy | {
211
203
break :b self .allocateBytes (bdy );
212
204
} else {
213
205
break :b self .allocate (0 );
214
206
}
215
207
};
216
- defer req_body .free ();
217
208
const offset = extism .http_request (req .offset , req_body .offset );
218
209
const length = extism .length_unsafe (offset );
219
210
const status : u16 = @intCast (extism .http_status_code ());
0 commit comments