Enlightenment CVS committal

Author  : chaos
Project : e17
Module  : apps/evfs

Dir     : e17/apps/evfs/src/common


Modified Files:
        evfs_cleanup.c evfs_command.c evfs_filereference.c evfs_io.c 


Log Message:
* Fix mem smash in operation event cleanup
* Serialise operation events properly
* Populate plugin references in file reference post-command receive in IO code

===================================================================
RCS file: /cvs/e/e17/apps/evfs/src/common/evfs_cleanup.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- evfs_cleanup.c      16 Aug 2007 11:31:16 -0000      1.30
+++ evfs_cleanup.c      17 Aug 2007 10:19:04 -0000      1.31
@@ -20,7 +20,7 @@
 evfs_cleanup_file_command_only(evfs_command* command)
 {
        if (command->file_command->files)
-               free(command->file_command->files);
+               evas_list_free(command->file_command->files);
 
        free(command);
 }
@@ -113,9 +113,6 @@
 void
 evfs_cleanup_progress_event(EvfsEventProgress* event)
 {
-   if (event->from) evfs_cleanup_filereference(event->from);
-   if (event->to) evfs_cleanup_filereference(event->to);
-   
 }
 
 void
===================================================================
RCS file: /cvs/e/e17/apps/evfs/src/common/evfs_command.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- evfs_command.c      16 Aug 2007 13:12:36 -0000      1.1
+++ evfs_command.c      17 Aug 2007 10:19:04 -0000      1.2
@@ -21,3 +21,15 @@
                return evas_list_count(command->file_command->files);
        return 0;
 }
+
+void evfs_command_localise(evfs_command* command)
+{
+       if (command->file_command && command->file_command->files) {
+               Evas_List* l;
+               EvfsFilereference* file;
+               for (l=command->file_command->files;l;) {
+                       EvfsFilereference_sanitise(file);
+                       l=l->next;
+               }
+       }
+}
===================================================================
RCS file: /cvs/e/e17/apps/evfs/src/common/evfs_filereference.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- evfs_filereference.c        16 Aug 2007 13:12:36 -0000      1.1
+++ evfs_filereference.c        17 Aug 2007 10:19:04 -0000      1.2
@@ -7,6 +7,7 @@
        ref->plugin_uri = strdup(plugin);
        ref->file_type = filetype;
        ref->plugin = evfs_get_plugin_for_uri(evfs_server_get(), plugin);
+       printf("Got plugin %p for uri %s\n", ref->plugin, plugin);
 
        return ref;
 }
===================================================================
RCS file: /cvs/e/e17/apps/evfs/src/common/evfs_io.c,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -3 -r1.75 -r1.76
--- evfs_io.c   16 Aug 2007 13:24:32 -0000      1.75
+++ evfs_io.c   17 Aug 2007 10:19:04 -0000      1.76
@@ -27,6 +27,7 @@
 static Eet_Data_Descriptor *_EvfsMetadataGroup_edd;
 static Eet_Data_Descriptor *_EvfsEventMetadataGroups_edd;
 static Eet_Data_Descriptor *_EvfsOperation_edd;
+static Eet_Data_Descriptor *_EvfsEventOperation_edd;
 static Eet_Data_Descriptor *_EvfsEventAuthRequired_edd;
 static Eet_Data_Descriptor *_EvfsEventOpen_edd;
 
@@ -118,6 +119,24 @@
    EET_DATA_DESCRIPTOR_ADD_SUB(_EvfsFilereference_edd, EvfsFilereference, 
"parent", parent, 
                   _EvfsFilereference_edd);
 
+   /*Evfs_operation eet */
+   _EvfsOperation_edd = _NEW_EDD(EvfsOperation);
+
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation, "id", id,
+                                 EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
+                                                      "misc_str", misc_str, 
EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
+                                                      "ret_str_1", misc_str, 
EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
+                                                      "ret_str_2", misc_str, 
EET_T_STRING);
+   
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation, "status",
+                                 status, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
+                                 "substatus", substatus, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
+                                 "response", response, EET_T_INT);
 
    /*Command edd*/
    _EvfsCommandFile_edd = _NEW_EDD(evfs_command_file);
@@ -131,8 +150,6 @@
                    "ref2", ref2, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_LIST(_EvfsCommandFile_edd, evfs_command_file,
                    "files", files, _EvfsFilereference_edd);
-
-   
    
    _EvfsCommand_edd = _NEW_EDD(evfs_command);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsCommand_edd, evfs_command,
@@ -144,27 +161,6 @@
    EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsCommand_edd, evfs_command,
                                  "EvfsCommand_id", client_identifier, 
EET_T_INT);
 
-   /*Evfs_operation eet */
-   _EvfsOperation_edd = _NEW_EDD(EvfsOperation);
-
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation, "id", id,
-                                 EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
-                                                      "misc_str", misc_str, 
EET_T_STRING);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
-                                                      "ret_str_1", misc_str, 
EET_T_STRING);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
-                                                      "ret_str_2", misc_str, 
EET_T_STRING);
-   
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation, "status",
-                                 status, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
-                                 "substatus", substatus, EET_T_INT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsOperation_edd, evfs_operation,
-                                 "response", response, EET_T_INT);
-
-   
-   
    /*Base event EDD*/
    _EvfsEvent_edd = _NEW_EDD(EvfsEvent);
    EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsEvent_edd, EvfsEvent,
@@ -249,6 +245,13 @@
    _EVFS_EVENT_BASE_ADD(EvfsEventOpen);
    evfs_io_event_edd_set(EVFS_EV_FILE_OPEN, _EvfsEventOpen_edd);
 
+   /*EvfsEventOperation*/
+   _EvfsEventOperation_edd = _NEW_EDD(EvfsEventOperation);
+   _EVFS_EVENT_BASE_ADD(EvfsEventOperation);
+   EET_DATA_DESCRIPTOR_ADD_SUB(_EvfsEventOperation_edd, EvfsEventOperation, 
"EvfsEventOperation_operation", operation, _EvfsOperation_edd);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_EvfsEventOperation_edd, EvfsEventOperation, 
"EvfsEventOperation_misc", misc, EET_T_STRING);
+   evfs_io_event_edd_set(EVFS_EV_OPERATION, _EvfsEventOperation_edd);
+
 
    /*File monitor edd*/
    /*_evfs_filemonitor_edd =
@@ -357,7 +360,11 @@
    ecore_ipc_message* msg = evfs_io_event_construct(event);
    /*printf("Writing event to master: %p -- message: %p:%p..\n", 
client->master, msg, msg->data);*/
 
-   evfs_write_ecore_ipc_server_message(client->master,msg);
+   if (msg) {
+          evfs_write_ecore_ipc_server_message(client->master,msg);
+   } else {
+          printf("Could not find message to write\n");
+   }
 }
 
 EvfsEvent*
@@ -420,22 +427,6 @@
 //be generic
 //
 void
-evfs_write_operation_command(evfs_connection * conn, evfs_command * command)
-{
-   int size_ret = 0;
-
-   char *data =
-      eet_data_descriptor_encode(_EvfsOperation_edd, command->op, &size_ret);
-
-   evfs_write_ecore_ipc_server_message(conn->server,
-                                       ecore_ipc_message_new(EVFS_COMMAND,
-                                                             
EVFS_COMMAND_PART_OPERATION,
-                                                             0, 0, 0, data,
-                                                             size_ret));
-   free(data);
-}
-
-void
 evfs_write_command(evfs_connection * conn, evfs_command * command)
 {
    char* data;
@@ -463,6 +454,10 @@
        int size;
 
        com = eet_data_descriptor_decode(_EvfsCommand_edd, message->data, 
message->len);
+
+       /*Set local references to plugins, etc*/
+       evfs_command_localise(com);
+
        return com;
 }
 



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to