]> git.pond.sub.org Git - empserver/commitdiff
Revive struct empfile callback init as oninit
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 7 Sep 2008 15:27:18 +0000 (11:27 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Tue, 9 Sep 2008 01:30:37 +0000 (21:30 -0400)
Commit a71f0158 removed unused callback init.  Bring it back renamed
to oninit, and without the redundant first argument.

include/file.h
src/lib/common/file.c
src/lib/common/filetable.c

index 7e8cdd8e771b59785b6778869d658bc7f95ae1af..b3b89593daee854555c91255019a499c3352e5b9 100644 (file)
@@ -60,6 +60,10 @@ struct empfile {
     /* flags bit EFF_CUSTOM also varies */
 
     /* User callbacks, may all be null */
+    /*
+     * Called after element initialization.  ELT is the element.
+     */
+    void (*oninit)(void *elt);
     /*
      * Called after read.  ID is the element id, and ELT is the
      * element read.  May modify the element.  Modifications are
index 0d4999d25a4d991938bd5a133311119223f37a34..692ed1878cbf73d6cfed23a2ec41eb62d27d9672 100644 (file)
@@ -667,12 +667,14 @@ do_blank(struct empfile *ep, void *buf, int id, int count)
     struct emptypedstr *elt;
 
     memset(buf, 0, count * ep->size);
-    if (ep->flags & EFF_TYPED) {
-       for (i = 0; i < count; i++) {
-           elt = (struct emptypedstr *)((char *)buf + i * ep->size);
+    for (i = 0; i < count; i++) {
+       elt = (struct emptypedstr *)((char *)buf + i * ep->size);
+       if (ep->flags & EFF_TYPED) {
            elt->ef_type = ep->uid;
            elt->uid = id + i;
        }
+       if (ep->oninit)
+           ep->oninit(elt);
     }
 }
 
index eaa155e542241f73cf1bd554f39f5123376c9c64..4894369ccf545a18fc35c6df0e66c1317c99582c 100644 (file)
 /* Initializers for members flags... */
 /* Unmapped cache */
 #define UNMAPPED_CACHE(type, flags) \
-    sizeof(type), (flags), NULL, 0, 0, 0, 0, -1, NULL, NULL
+    sizeof(type), (flags), NULL, 0, 0, 0, 0, -1, NULL, NULL, NULL
 /*
  * Mapped cache, array with known size.
  * Members cids, fids are not set.
  */
 #define ARRAY_CACHE(array, flags) \
     sizeof(*(array)), (flags), (char *)(array), \
-    SZ((array)), 0, 0, 0, -1, NULL, NULL
+    SZ((array)), 0, 0, 0, -1, NULL, NULL, NULL
 /*
  * Mapped cache, array with unknown size.
  * Members csize, cids, fids are not set.
  */
 #define PTR_CACHE(ptr, flags) \
     sizeof(*(ptr)), (flags), (char *)(ptr), \
-    0, 0, 0, 0, -1, NULL, NULL
+    0, 0, 0, 0, -1, NULL, NULL, NULL
 /*
  * Array-backed table.
  * The array's last element is the sentinel.
  */
-#define ARRAY_TABLE(array, flags) \
-    sizeof(*(array)), (flags), (char *)(array), \
-    SZ((array)), 0, SZ((array)) - 1, SZ((array)) - 1, -1, NULL, NULL
+#define ARRAY_TABLE(array, flags)                              \
+    sizeof(*(array)), (flags), (char *)(array),                        \
+    SZ((array)), 0, SZ((array)) - 1, SZ((array)) - 1, -1,      \
+    NULL, NULL, NULL
 
 /* Common configuration table flags */
 #define EFF_CFG (EFF_PRIVATE | EFF_MEM | EFF_STATIC | EFF_SENTINEL)
@@ -144,9 +145,9 @@ struct empfile empfile[] = {
     {EF_LOAN, "loan", "loan", loan_ca,
      UNMAPPED_CACHE(struct lonstr, EFF_TYPED)},
     {EF_MAP, "map", "map", NULL,
-     0, 0, NULL, 0, 0, 0, 0, -1, NULL, NULL},
+     0, 0, NULL, 0, 0, 0, 0, -1, NULL, NULL, NULL},
     {EF_BMAP, "bmap", "bmap", NULL,
-     0, 0, NULL, 0, 0, 0, 0, -1, NULL, NULL},
+     0, 0, NULL, 0, 0, 0, 0, -1, NULL, NULL, NULL},
     {EF_COMM, "commodity", "commodity", commodity_ca,
      UNMAPPED_CACHE(struct comstr, EFF_TYPED | EFF_OWNER)},
     {EF_LOST, "lost", "lostitems", lost_ca,
@@ -196,7 +197,7 @@ struct empfile empfile[] = {
      ARRAY_TABLE(empfile, EFF_CFG)},
     {EF_VERSION, "version", NULL, NULL,
      sizeof(PACKAGE_STRING), EFF_STATIC, version, 1, 0, 1, 1, -1,
-     NULL, NULL},
+     NULL, NULL, NULL},
     {EF_META, "meta", NULL, mdchr_ca,
      PTR_CACHE(mdchr_ca, EFF_CFG)},
 
@@ -235,7 +236,8 @@ struct empfile empfile[] = {
      UNMAPPED_CACHE(struct natstr, EFF_TYPED | EFF_OWNER)},
 
     /* Sentinel */
-    {EF_BAD, NULL, NULL, NULL, 0, 0, NULL, 0, 0, 0, 0, -1, NULL, NULL},
+    {EF_BAD, NULL, NULL, NULL,
+     0, 0, NULL, 0, 0, 0, 0, -1, NULL, NULL, NULL},
 };
 
 static void