diff options
Diffstat (limited to 'src/love')
-rw-r--r-- | src/love/love.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/love/love.c b/src/love/love.c index 91c9d95..0e4ac40 100644 --- a/src/love/love.c +++ b/src/love/love.c | |||
@@ -142,6 +142,9 @@ static void dirList_compile(const char *name, const char *path, void *data) | |||
142 | { | 142 | { |
143 | if (0 == strcmp(ext, ".lsl")) | 143 | if (0 == strcmp(ext, ".lsl")) |
144 | { | 144 | { |
145 | // TODO - We are leaking these, coz we don't know when scripts get deleted in the script server. | ||
146 | // On the other hand, the main use for this is a temporary hack that sends events to all scripts. | ||
147 | // So that part will get a rewrite when we make it real later anyway. | ||
145 | script *me = calloc(1, sizeof(script)); | 148 | script *me = calloc(1, sizeof(script)); |
146 | 149 | ||
147 | scriptCount++; | 150 | scriptCount++; |
@@ -388,6 +391,7 @@ static Eina_Bool _dataLuaSL(void *data, int type, Ecore_Con_Event_Server_Data *e | |||
388 | { | 391 | { |
389 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.link_message%s", &command[15]); | 392 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.link_message%s", &command[15]); |
390 | } | 393 | } |
394 | eina_iterator_free(scripts); | ||
391 | } | 395 | } |
392 | else if (0 == strncmp(command, "llGetNotecardLine(", 18)) | 396 | else if (0 == strncmp(command, "llGetNotecardLine(", 18)) |
393 | { | 397 | { |
@@ -421,6 +425,7 @@ static Eina_Bool _dataLuaSL(void *data, int type, Ecore_Con_Event_Server_Data *e | |||
421 | temp = NULL; | 425 | temp = NULL; |
422 | do | 426 | do |
423 | { | 427 | { |
428 | free(temp); | ||
424 | temp = get_rawline(fd, &len, '\n'); | 429 | temp = get_rawline(fd, &len, '\n'); |
425 | if (temp) | 430 | if (temp) |
426 | { | 431 | { |
@@ -455,6 +460,8 @@ static Eina_Bool _dataLuaSL(void *data, int type, Ecore_Con_Event_Server_Data *e | |||
455 | else | 460 | else |
456 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.dataserver(\"%s\", \"EndOfFuckingAround\")", key); | 461 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.dataserver(\"%s\", \"EndOfFuckingAround\")", key); |
457 | } | 462 | } |
463 | eina_iterator_free(scripts); | ||
464 | free(temp); | ||
458 | 465 | ||
459 | close(fd); | 466 | close(fd); |
460 | } | 467 | } |
@@ -545,6 +552,7 @@ static Eina_Bool _dataClient(void *data, int type, Ecore_Con_Event_Client_Data * | |||
545 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.detectedNames({\"%s\"})", ownerName); | 552 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.detectedNames({\"%s\"})", ownerName); |
546 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.touch_start(1)"); | 553 | sendForth(ourGlobals->serverLuaSL, me->SID, "events.touch_start(1)"); |
547 | } | 554 | } |
555 | eina_iterator_free(scripts); | ||
548 | } | 556 | } |
549 | else if (0 == strncmp(command, "events.listen(", 14)) | 557 | else if (0 == strncmp(command, "events.listen(", 14)) |
550 | { | 558 | { |
@@ -557,6 +565,7 @@ static Eina_Bool _dataClient(void *data, int type, Ecore_Con_Event_Client_Data * | |||
557 | { | 565 | { |
558 | sendForth(ourGlobals->serverLuaSL, me->SID, command); | 566 | sendForth(ourGlobals->serverLuaSL, me->SID, command); |
559 | } | 567 | } |
568 | eina_iterator_free(scripts); | ||
560 | } | 569 | } |
561 | else | 570 | else |
562 | PW("Unknown command from client - %s", command); | 571 | PW("Unknown command from client - %s", command); |
@@ -768,6 +777,8 @@ int main(int argc, char **argv) | |||
768 | } | 777 | } |
769 | else | 778 | else |
770 | PC("Failed to init ecore_con!"); | 779 | PC("Failed to init ecore_con!"); |
780 | |||
781 | eina_hash_free(ourGlobals.scripts); | ||
771 | } | 782 | } |
772 | else | 783 | else |
773 | fprintf(stderr, "Failed to init eina!"); | 784 | fprintf(stderr, "Failed to init eina!"); |