1
- // include skynet.h first for malloc hook
2
- #include "skynet.h"
1
+ #include "skynet_malloc.h"
3
2
4
3
#include "skynet_socket.h"
5
4
@@ -51,7 +50,7 @@ clear_list(struct uncomplete * uc) {
51
50
while (uc ) {
52
51
void * tmp = uc ;
53
52
uc = uc -> next ;
54
- free (tmp );
53
+ skynet_free (tmp );
55
54
}
56
55
}
57
56
@@ -71,7 +70,7 @@ lclear(lua_State *L) {
71
70
}
72
71
for (i = q -> head ;i < q -> tail ;i ++ ) {
73
72
struct netpack * np = & q -> queue [i % q -> cap ];
74
- free (np -> buffer );
73
+ skynet_free (np -> buffer );
75
74
}
76
75
q -> head = q -> tail = 0 ;
77
76
@@ -147,7 +146,7 @@ expand_queue(lua_State *L, struct queue *q) {
147
146
static void
148
147
push_data (lua_State * L , int fd , void * buffer , int size , int clone ) {
149
148
if (clone ) {
150
- void * tmp = malloc (size );
149
+ void * tmp = skynet_malloc (size );
151
150
memcpy (tmp , buffer , size );
152
151
buffer = tmp ;
153
152
}
@@ -167,7 +166,7 @@ static struct uncomplete *
167
166
save_uncomplete (lua_State * L , int fd ) {
168
167
struct queue * q = get_queue (L );
169
168
int h = hash_fd (fd );
170
- struct uncomplete * uc = malloc (sizeof (struct uncomplete ));
169
+ struct uncomplete * uc = skynet_malloc (sizeof (struct uncomplete ));
171
170
memset (uc , 0 , sizeof (* uc ));
172
171
uc -> next = q -> hash [h ];
173
172
uc -> pack .id = fd ;
@@ -198,7 +197,7 @@ push_more(lua_State *L, int fd, uint8_t *buffer, int size) {
198
197
struct uncomplete * uc = save_uncomplete (L , fd );
199
198
uc -> read = size ;
200
199
uc -> pack .size = pack_size ;
201
- uc -> pack .buffer = malloc (pack_size );
200
+ uc -> pack .buffer = skynet_malloc (pack_size );
202
201
memcpy (uc -> pack .buffer , buffer , size );
203
202
return ;
204
203
}
@@ -225,7 +224,7 @@ filter_data_(lua_State *L, int fd, uint8_t * buffer, int size) {
225
224
++ buffer ;
226
225
-- size ;
227
226
uc -> pack .size = pack_size ;
228
- uc -> pack .buffer = malloc (pack_size );
227
+ uc -> pack .buffer = skynet_malloc (pack_size );
229
228
uc -> read = 0 ;
230
229
}
231
230
int need = uc -> pack .size - uc -> read ;
@@ -245,12 +244,12 @@ filter_data_(lua_State *L, int fd, uint8_t * buffer, int size) {
245
244
lua_pushinteger (L , fd );
246
245
lua_pushlightuserdata (L , uc -> pack .buffer );
247
246
lua_pushinteger (L , uc -> pack .size );
248
- free (uc );
247
+ skynet_free (uc );
249
248
return 5 ;
250
249
}
251
250
// more data
252
251
push_data (L , fd , uc -> pack .buffer , uc -> pack .size , 0 );
253
- free (uc );
252
+ skynet_free (uc );
254
253
push_more (L , fd , buffer , size );
255
254
lua_pushvalue (L , lua_upvalueindex (TYPE_MORE ));
256
255
return 2 ;
@@ -269,15 +268,15 @@ filter_data_(lua_State *L, int fd, uint8_t * buffer, int size) {
269
268
struct uncomplete * uc = save_uncomplete (L , fd );
270
269
uc -> read = size ;
271
270
uc -> pack .size = pack_size ;
272
- uc -> pack .buffer = malloc (pack_size );
271
+ uc -> pack .buffer = skynet_malloc (pack_size );
273
272
memcpy (uc -> pack .buffer , buffer , size );
274
273
return 1 ;
275
274
}
276
275
if (size == pack_size ) {
277
276
// just one package
278
277
lua_pushvalue (L , lua_upvalueindex (TYPE_DATA ));
279
278
lua_pushinteger (L , fd );
280
- void * result = malloc (pack_size );
279
+ void * result = skynet_malloc (pack_size );
281
280
memcpy (result , buffer , size );
282
281
lua_pushlightuserdata (L , result );
283
282
lua_pushinteger (L , size );
@@ -298,7 +297,7 @@ filter_data(lua_State *L, int fd, uint8_t * buffer, int size) {
298
297
int ret = filter_data_ (L , fd , buffer , size );
299
298
// buffer is the data of socket message, it malloc at socket_server.c : function forward_message .
300
299
// it should be free before return,
301
- free (buffer );
300
+ skynet_free (buffer );
302
301
return ret ;
303
302
}
304
303
@@ -419,7 +418,7 @@ lpack(lua_State *L) {
419
418
return luaL_error (L , "Invalid size (too long) of data : %d" , (int )len );
420
419
}
421
420
422
- uint8_t * buffer = malloc (len + 2 );
421
+ uint8_t * buffer = skynet_malloc (len + 2 );
423
422
write_size (buffer , len );
424
423
memcpy (buffer + 2 , ptr , len );
425
424
@@ -460,7 +459,7 @@ ltostring(lua_State *L) {
460
459
lua_pushliteral (L , "" );
461
460
} else {
462
461
lua_pushlstring (L , (const char * )ptr , size );
463
- free (ptr );
462
+ skynet_free (ptr );
464
463
}
465
464
return 1 ;
466
465
}
0 commit comments