pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] pspp/src data/ChangeLog data/casereader-transla...


From: Ben Pfaff
Subject: [Pspp-cvs] pspp/src data/ChangeLog data/casereader-transla...
Date: Wed, 12 Sep 2007 13:43:50 +0000

CVSROOT:        /cvsroot/pspp
Module name:    pspp
Changes by:     Ben Pfaff <blp> 07/09/12 13:43:50

Modified files:
        src/data       : ChangeLog casereader-translator.c casereader.h 
                         casewriter-translator.c casewriter.h 
        src/language/data-io: ChangeLog get.c 

Log message:
        * casereader-translator.c (struct casereader_translator): Change
        input case parameter of translate member function from const
        struct ccase * to struct ccase *.
        (casereader_create_translator): Ditto, for translate parameter.
        
        * casewriter-translator.c (struct casewriter_translator): Ditto.
        (casewriter_create_translator): Ditto.
        
        * get.c (get_translate_case): Change input case parameter from
        const struct ccase * to struct ccase *, to match change in
        casereader and casewriter translators.  Destroy input case, to fix
        memory leak.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/ChangeLog?cvsroot=pspp&r1=1.155&r2=1.156
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casereader-translator.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casereader.h?cvsroot=pspp&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casewriter-translator.c?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casewriter.h?cvsroot=pspp&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/ChangeLog?cvsroot=pspp&r1=1.45&r2=1.46
http://cvs.savannah.gnu.org/viewcvs/pspp/src/language/data-io/get.c?cvsroot=pspp&r1=1.41&r2=1.42

Patches:
Index: data/ChangeLog
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/ChangeLog,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -b -r1.155 -r1.156
--- data/ChangeLog      27 Aug 2007 00:06:23 -0000      1.155
+++ data/ChangeLog      12 Sep 2007 13:43:49 -0000      1.156
@@ -1,3 +1,16 @@
+2007-09-12  Ben Pfaff  <address@hidden>
+
+       Make it clear that translator casereader and casewriter translate
+       functions are supposed to destroy their input case.
+       
+       * casereader-translator.c (struct casereader_translator): Change
+       input case parameter of translate member function from const
+       struct ccase * to struct ccase *.
+       (casereader_create_translator): Ditto, for translate parameter.
+
+       * casewriter-translator.c (struct casewriter_translator): Ditto.
+       (casewriter_create_translator): Ditto.
+
 2007-08-27  John Darrinton <address@hidden>
        
        * sys-file-reader.c (read_display_parameters): Force display width 
@@ -32,7 +45,7 @@
        dict_make_compactor.
        (scratch_writer_casewriter_write): Use case_map_execute instead of
        dict_compactor_compact.
-o
+
 2007-08-12  Ben Pfaff  <address@hidden>
 
        * automake.mk: Add case-map.c, case-map.h.

Index: data/casereader-translator.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/casereader-translator.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- data/casereader-translator.c        7 Jul 2007 06:14:07 -0000       1.5
+++ data/casereader-translator.c        12 Sep 2007 13:43:49 -0000      1.6
@@ -33,8 +33,7 @@
   {
     struct casereader *subreader; /* Source of input cases. */
 
-    void (*translate) (const struct ccase *input, struct ccase *output,
-                       void *aux);
+    void (*translate) (struct ccase *input, struct ccase *output, void *aux);
     bool (*destroy) (void *aux);
     void *aux;
   };
@@ -56,7 +55,7 @@
 struct casereader *
 casereader_create_translator (struct casereader *subreader,
                               size_t output_value_cnt,
-                              void (*translate) (const struct ccase *input,
+                              void (*translate) (struct ccase *input,
                                                  struct ccase *output,
                                                  void *aux),
                               bool (*destroy) (void *aux),

Index: data/casereader.h
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/casereader.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- data/casereader.h   7 Jul 2007 06:14:07 -0000       1.4
+++ data/casereader.h   12 Sep 2007 13:43:50 -0000      1.5
@@ -105,7 +105,7 @@
 
 struct casereader *
 casereader_create_translator (struct casereader *, size_t output_value_cnt,
-                              void (*translate) (const struct ccase *input,
+                              void (*translate) (struct ccase *input,
                                                  struct ccase *output,
                                                  void *aux),
                               bool (*destroy) (void *aux),

Index: data/casewriter-translator.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/casewriter-translator.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- data/casewriter-translator.c        13 Aug 2007 00:41:35 -0000      1.5
+++ data/casewriter-translator.c        12 Sep 2007 13:43:50 -0000      1.6
@@ -29,18 +29,29 @@
   {
     struct casewriter *subwriter;
 
-    void (*translate) (const struct ccase *input, struct ccase *output,
-                       void *aux);
+    void (*translate) (struct ccase *input, struct ccase *output, void *aux);
     bool (*destroy) (void *aux);
     void *aux;
   };
 
 static struct casewriter_class casewriter_translator_class;
 
+/* Creates and returns a new casewriter whose cases are passed
+   through TRANSLATE, which must create case OUTPUT, with
+   OUTPUT_VALUE_CNT values, and populate it based on INPUT and
+   auxiliary data AUX.  The translated cases are then written to
+   SUBWRITER.  TRANSLATE must also destroy INPUT.
+
+   When the translating casewriter is destroyed, DESTROY will be
+   called to allow any state maintained by TRANSLATE to be freed.
+
+   After this function is called, SUBWRITER must not ever again
+   be referenced directly.  It will be destroyed automatically
+   when the translating casewriter is destroyed. */
 struct casewriter *
 casewriter_create_translator (struct casewriter *subwriter,
                               size_t translated_value_cnt,
-                              void (*translate) (const struct ccase *input,
+                              void (*translate) (struct ccase *input,
                                                  struct ccase *output,
                                                  void *aux),
                               bool (*destroy) (void *aux),

Index: data/casewriter.h
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/casewriter.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- data/casewriter.h   13 Aug 2007 00:41:35 -0000      1.5
+++ data/casewriter.h   12 Sep 2007 13:43:50 -0000      1.6
@@ -43,7 +43,7 @@
 
 struct casewriter *
 casewriter_create_translator (struct casewriter *, size_t translated_value_cnt,
-                              void (*translate) (const struct ccase *input,
+                              void (*translate) (struct ccase *input,
                                                  struct ccase *output,
                                                  void *aux),
                               bool (*destroy) (void *aux),

Index: language/data-io/ChangeLog
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/ChangeLog,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- language/data-io/ChangeLog  13 Aug 2007 04:23:29 -0000      1.45
+++ language/data-io/ChangeLog  12 Sep 2007 13:43:50 -0000      1.46
@@ -1,3 +1,10 @@
+2007-09-12  Ben Pfaff  <address@hidden>
+
+       * get.c (get_translate_case): Change input case parameter from
+       const struct ccase * to struct ccase *, to match change in
+       casereader and casewriter translators.  Destroy input case, to fix
+       memory leak.
+
 2007-08-12  Ben Pfaff  <address@hidden>
 
        * get.c (parse_read_command): Compact the values in the target

Index: language/data-io/get.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/language/data-io/get.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- language/data-io/get.c      13 Aug 2007 04:23:29 -0000      1.41
+++ language/data-io/get.c      12 Sep 2007 13:43:50 -0000      1.42
@@ -60,8 +60,7 @@
     IMPORT_CMD
   };
 
-static void get_translate_case (const struct ccase *, struct ccase *,
-                                void *map_);
+static void get_translate_case (struct ccase *, struct ccase *, void *map_);
 static bool get_destroy_case_map (void *map_);
 
 /* Parses a GET or IMPORT command. */
@@ -143,11 +142,12 @@
 }
 
 static void
-get_translate_case (const struct ccase *input, struct ccase *output,
+get_translate_case (struct ccase *input, struct ccase *output,
                     void *map_)
 {
   struct case_map *map = map_;
   case_map_execute (map, input, output);
+  case_destroy (input);
 }
 
 static bool




reply via email to

[Prev in Thread] Current Thread [Next in Thread]