Implemented sub-second W32 filesystem interface by new: CaptiveFileInfoObject
[captive.git] / src / libcaptive / sandbox / server-File.c
index 48e94d8..b5a144b 100644 (file)
@@ -39,9 +39,9 @@ static void impl_Captive_File_tell
                (impl_POA_Captive_File *servant,Captive_GnomeVFSFileOffset *offset_return,CORBA_Environment *ev);
 static void impl_Captive_File_remove(impl_POA_Captive_File *servant,CORBA_Environment *ev);
 static void impl_Captive_File_file_info_get
-               (impl_POA_Captive_File *servant,Captive_GnomeVFSFileInfo **file_info,CORBA_Environment *ev);
+               (impl_POA_Captive_File *servant,Captive_CaptiveFileInfoObject **file_info,CORBA_Environment *ev);
 static void impl_Captive_File_file_info_set(impl_POA_Captive_File *servant,
-               const Captive_GnomeVFSFileInfo *file_info,const Captive_GnomeVFSSetFileInfoMask mask,CORBA_Environment *ev);
+               const Captive_CaptiveFileInfoObject *file_info,const Captive_GnomeVFSSetFileInfoMask mask,CORBA_Environment *ev);
 static void impl_Captive_File_truncate
                (impl_POA_Captive_File *servant,const Captive_GnomeVFSFileSize file_size,CORBA_Environment *ev);
 static void impl_Captive_File_move
@@ -250,23 +250,25 @@ GnomeVFSResult errvfsresult;
 
 
 static void impl_Captive_File_file_info_get
-               (impl_POA_Captive_File *servant,Captive_GnomeVFSFileInfo **file_info_corba_return,CORBA_Environment *ev)
+               (impl_POA_Captive_File *servant,Captive_CaptiveFileInfoObject **file_info_corba_return,CORBA_Environment *ev)
 {
-GnomeVFSFileInfo file_info_captive;
+CaptiveFileInfoObject *file_info_captive;
 GnomeVFSResult errvfsresult;
-Captive_GnomeVFSFileInfo *file_info_corba;
+Captive_CaptiveFileInfoObject *file_info_corba;
 
        if (GNOME_VFS_OK!=(errvfsresult=captive_file_file_info_get(servant->captive_file_object,&file_info_captive))) {
                captive_sandbox_child_GnomeVFSResultException_throw(ev,errvfsresult);
                return;
                }
 
-       file_info_corba=Captive_GnomeVFSFileInfo__alloc();
+       file_info_corba=Captive_CaptiveFileInfoObject__alloc();
 
-       if (GNOME_VFS_OK!=(errvfsresult=captive_sandbox_file_info_captive_to_corba(
-                       file_info_corba,&file_info_captive))) {
+       errvfsresult=captive_sandbox_file_info_captive_to_corba(file_info_corba,file_info_captive);
+       g_object_unref(file_info_captive);
+
+       if (GNOME_VFS_OK!=errvfsresult) {
                captive_sandbox_child_GnomeVFSResultException_throw(ev,errvfsresult);
-               Captive_GnomeVFSFileInfo__freekids(file_info_corba,NULL/* 'd'; meaning? */);
+               Captive_CaptiveFileInfoObject__freekids(file_info_corba,NULL/* 'd'; meaning? */);
                CORBA_free(file_info_corba);
                return;
                }
@@ -276,18 +278,21 @@ Captive_GnomeVFSFileInfo *file_info_corba;
 
 
 static void impl_Captive_File_file_info_set(impl_POA_Captive_File *servant,
-               const Captive_GnomeVFSFileInfo *file_info_corba,const Captive_GnomeVFSSetFileInfoMask mask,CORBA_Environment *ev)
+               const Captive_CaptiveFileInfoObject *file_info_corba,const Captive_GnomeVFSSetFileInfoMask mask,CORBA_Environment *ev)
 {
-GnomeVFSFileInfo file_info_captive;
+CaptiveFileInfoObject *file_info_captive;
 GnomeVFSResult errvfsresult;
 
        if (GNOME_VFS_OK!=(errvfsresult=captive_sandbox_file_info_corba_to_captive(
-                       &file_info_captive,file_info_corba))) {
+                       file_info_captive,file_info_corba))) {
                captive_sandbox_child_GnomeVFSResultException_throw(ev,errvfsresult);
                return;
                }
 
-       if (GNOME_VFS_OK!=(errvfsresult=captive_file_file_info_set(servant->captive_file_object,&file_info_captive,mask))) {
+       errvfsresult=captive_file_file_info_set(servant->captive_file_object,file_info_captive,mask);
+       g_object_unref(file_info_captive);
+
+       if (GNOME_VFS_OK!=errvfsresult) {
                captive_sandbox_child_GnomeVFSResultException_throw(ev,errvfsresult);
                return;
                }