Module: xenomai-3
Branch: stable-3.0.x
Commit: 3568a12e797aa35d80650dff3acabcc14ce081ac
URL:    
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=3568a12e797aa35d80650dff3acabcc14ce081ac

Author: Philippe Gerum <r...@xenomai.org>
Date:   Sat Apr 28 18:45:15 2018 +0200

copperplate/registry: switch back to private memory for fs objects

Partially revert #8e606e681, keeping registry_add_dir/file() routines
free from Cobalt mode switches, a property which some applications
might assume when creating specific rt objects (e.g. Alchemy's
mutexes, condvars).

---

 lib/copperplate/registry.c |   16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/lib/copperplate/registry.c b/lib/copperplate/registry.c
index 0f675ef..1d15448 100644
--- a/lib/copperplate/registry.c
+++ b/lib/copperplate/registry.c
@@ -116,13 +116,13 @@ int registry_add_dir(const char *fmt, ...)
 
        write_lock_safe(&p->lock, state);
 
-       d = __STD(malloc(sizeof(*d)));
+       d = pvmalloc(sizeof(*d));
        if (d == NULL) {
                ret = -ENOMEM;
                goto done;
        }
        pvholder_init(&d->link);
-       d->path = strdup(path);
+       d->path = pvstrdup(path);
 
        if (strcmp(path, "/")) {
                d->basename = d->path + (basename - path) + 1;
@@ -149,8 +149,8 @@ int registry_add_dir(const char *fmt, ...)
                           &pvhash_operations);
        if (ret) {
        fail:
-               __STD(free(d->path));
-               __STD(free(d));
+               pvfree(d->path);
+               pvfree(d);
        }
 done:
        write_unlock_safe(&p->lock, state);
@@ -203,7 +203,7 @@ int registry_add_file(struct fsobj *fsobj, int mode, const 
char *fmt, ...)
        if (basename == NULL)
                return __bt(-EINVAL);
 
-       fsobj->path = strdup(path);
+       fsobj->path = pvstrdup(path);
        fsobj->basename = fsobj->path + (basename - path) + 1;
        fsobj->mode = mode & O_ACCMODE;
        __RT(clock_gettime(CLOCK_COPPERPLATE, &fsobj->ctime));
@@ -224,7 +224,7 @@ int registry_add_file(struct fsobj *fsobj, int mode, const 
char *fmt, ...)
                ret = -ENOENT;
        fail:
                pvhash_remove(&p->files, &fsobj->hobj, &pvhash_operations);
-               __STD(free(fsobj->path));
+               pvfree(fsobj->path);
                fsobj->path = NULL;
                goto done;
        }
@@ -263,7 +263,7 @@ void registry_destroy_file(struct fsobj *fsobj)
        pvlist_remove(&fsobj->link);
        d->nfiles--;
        assert(d->nfiles >= 0);
-       __STD(free(fsobj->path));
+       pvfree(fsobj->path);
        __RT(pthread_mutex_unlock(&fsobj->lock));
 out:
        __RT(pthread_mutex_destroy(&fsobj->lock));
@@ -693,7 +693,7 @@ static int spawn_daemon(const char *sessdir, int flags)
                break;
        }
 
-       __STD(free(path));
+       free(path);
 
        return ret;
 }


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to