mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	proplist: add and use const version of MAKE_HASHMAP macro
This commit is contained in:
		
							parent
							
								
									b757a2de5b
								
							
						
					
					
						commit
						e82506f08d
					
				
					 1 changed files with 15 additions and 16 deletions
				
			
		| 
						 | 
					@ -40,6 +40,7 @@ struct property {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MAKE_HASHMAP(p) ((pa_hashmap*) (p))
 | 
					#define MAKE_HASHMAP(p) ((pa_hashmap*) (p))
 | 
				
			||||||
 | 
					#define MAKE_HASHMAP_CONST(p) ((const pa_hashmap*) (p))
 | 
				
			||||||
#define MAKE_PROPLIST(p) ((pa_proplist*) (p))
 | 
					#define MAKE_PROPLIST(p) ((pa_proplist*) (p))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pa_proplist_key_valid(const char *key) {
 | 
					int pa_proplist_key_valid(const char *key) {
 | 
				
			||||||
| 
						 | 
					@ -83,7 +84,7 @@ int pa_proplist_sets(pa_proplist *p, const char *key, const char *value) {
 | 
				
			||||||
    if (!pa_proplist_key_valid(key) || !pa_utf8_valid(value))
 | 
					    if (!pa_proplist_key_valid(key) || !pa_utf8_valid(value))
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_get(MAKE_HASHMAP(p), key))) {
 | 
					    if (!(prop = pa_hashmap_get(MAKE_HASHMAP_CONST(p), key))) {
 | 
				
			||||||
        prop = pa_xnew(struct property, 1);
 | 
					        prop = pa_xnew(struct property, 1);
 | 
				
			||||||
        prop->key = pa_xstrdup(key);
 | 
					        prop->key = pa_xstrdup(key);
 | 
				
			||||||
        add = true;
 | 
					        add = true;
 | 
				
			||||||
| 
						 | 
					@ -118,7 +119,7 @@ static int proplist_setn(pa_proplist *p, const char *key, size_t key_length, con
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_get(MAKE_HASHMAP(p), k))) {
 | 
					    if (!(prop = pa_hashmap_get(MAKE_HASHMAP_CONST(p), k))) {
 | 
				
			||||||
        prop = pa_xnew(struct property, 1);
 | 
					        prop = pa_xnew(struct property, 1);
 | 
				
			||||||
        prop->key = k;
 | 
					        prop->key = k;
 | 
				
			||||||
        add = true;
 | 
					        add = true;
 | 
				
			||||||
| 
						 | 
					@ -181,7 +182,7 @@ static int proplist_sethex(pa_proplist *p, const char *key, size_t key_length, c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_xfree(v);
 | 
					    pa_xfree(v);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_get(MAKE_HASHMAP(p), k))) {
 | 
					    if (!(prop = pa_hashmap_get(MAKE_HASHMAP_CONST(p), k))) {
 | 
				
			||||||
        prop = pa_xnew(struct property, 1);
 | 
					        prop = pa_xnew(struct property, 1);
 | 
				
			||||||
        prop->key = k;
 | 
					        prop->key = k;
 | 
				
			||||||
        add = true;
 | 
					        add = true;
 | 
				
			||||||
| 
						 | 
					@ -221,7 +222,7 @@ int pa_proplist_setf(pa_proplist *p, const char *key, const char *format, ...) {
 | 
				
			||||||
    if (!pa_utf8_valid(v))
 | 
					    if (!pa_utf8_valid(v))
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_get(MAKE_HASHMAP(p), key))) {
 | 
					    if (!(prop = pa_hashmap_get(MAKE_HASHMAP_CONST(p), key))) {
 | 
				
			||||||
        prop = pa_xnew(struct property, 1);
 | 
					        prop = pa_xnew(struct property, 1);
 | 
				
			||||||
        prop->key = pa_xstrdup(key);
 | 
					        prop->key = pa_xstrdup(key);
 | 
				
			||||||
        add = true;
 | 
					        add = true;
 | 
				
			||||||
| 
						 | 
					@ -252,7 +253,7 @@ int pa_proplist_set(pa_proplist *p, const char *key, const void *data, size_t nb
 | 
				
			||||||
    if (!pa_proplist_key_valid(key))
 | 
					    if (!pa_proplist_key_valid(key))
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_get(MAKE_HASHMAP(p), key))) {
 | 
					    if (!(prop = pa_hashmap_get(MAKE_HASHMAP_CONST(p), key))) {
 | 
				
			||||||
        prop = pa_xnew(struct property, 1);
 | 
					        prop = pa_xnew(struct property, 1);
 | 
				
			||||||
        prop->key = pa_xstrdup(key);
 | 
					        prop->key = pa_xstrdup(key);
 | 
				
			||||||
        add = true;
 | 
					        add = true;
 | 
				
			||||||
| 
						 | 
					@ -280,7 +281,7 @@ const char *pa_proplist_gets(pa_proplist *p, const char *key) {
 | 
				
			||||||
    if (!pa_proplist_key_valid(key))
 | 
					    if (!pa_proplist_key_valid(key))
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_get(MAKE_HASHMAP(p), key)))
 | 
					    if (!(prop = pa_hashmap_get(MAKE_HASHMAP_CONST(p), key)))
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (prop->nbytes <= 0)
 | 
					    if (prop->nbytes <= 0)
 | 
				
			||||||
| 
						 | 
					@ -309,7 +310,7 @@ int pa_proplist_get(pa_proplist *p, const char *key, const void **data, size_t *
 | 
				
			||||||
    if (!pa_proplist_key_valid(key))
 | 
					    if (!pa_proplist_key_valid(key))
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_get(MAKE_HASHMAP(p), key)))
 | 
					    if (!(prop = pa_hashmap_get(MAKE_HASHMAP_CONST(p), key)))
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *data = prop->value;
 | 
					    *data = prop->value;
 | 
				
			||||||
| 
						 | 
					@ -329,9 +330,7 @@ void pa_proplist_update(pa_proplist *p, pa_update_mode_t mode, const pa_proplist
 | 
				
			||||||
    if (mode == PA_UPDATE_SET)
 | 
					    if (mode == PA_UPDATE_SET)
 | 
				
			||||||
        pa_proplist_clear(p);
 | 
					        pa_proplist_clear(p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* MAKE_HASHMAP turns the const pointer into a non-const pointer, but
 | 
					    while ((prop = pa_hashmap_iterate(MAKE_HASHMAP_CONST(other), &state, NULL))) {
 | 
				
			||||||
     * that's ok, because we don't modify the hashmap contents. */
 | 
					 | 
				
			||||||
    while ((prop = pa_hashmap_iterate(MAKE_HASHMAP(other), &state, NULL))) {
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (mode == PA_UPDATE_MERGE && pa_proplist_contains(p, prop->key))
 | 
					        if (mode == PA_UPDATE_MERGE && pa_proplist_contains(p, prop->key))
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
| 
						 | 
					@ -374,7 +373,7 @@ int pa_proplist_unset_many(pa_proplist *p, const char * const keys[]) {
 | 
				
			||||||
const char *pa_proplist_iterate(pa_proplist *p, void **state) {
 | 
					const char *pa_proplist_iterate(pa_proplist *p, void **state) {
 | 
				
			||||||
    struct property *prop;
 | 
					    struct property *prop;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(prop = pa_hashmap_iterate(MAKE_HASHMAP(p), state, NULL)))
 | 
					    if (!(prop = pa_hashmap_iterate(MAKE_HASHMAP_CONST(p), state, NULL)))
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return prop->key;
 | 
					    return prop->key;
 | 
				
			||||||
| 
						 | 
					@ -640,7 +639,7 @@ int pa_proplist_contains(pa_proplist *p, const char *key) {
 | 
				
			||||||
    if (!pa_proplist_key_valid(key))
 | 
					    if (!pa_proplist_key_valid(key))
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(pa_hashmap_get(MAKE_HASHMAP(p), key)))
 | 
					    if (!(pa_hashmap_get(MAKE_HASHMAP_CONST(p), key)))
 | 
				
			||||||
        return 0;
 | 
					        return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 1;
 | 
					    return 1;
 | 
				
			||||||
| 
						 | 
					@ -666,13 +665,13 @@ pa_proplist* pa_proplist_copy(const pa_proplist *p) {
 | 
				
			||||||
unsigned pa_proplist_size(pa_proplist *p) {
 | 
					unsigned pa_proplist_size(pa_proplist *p) {
 | 
				
			||||||
    pa_assert(p);
 | 
					    pa_assert(p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return pa_hashmap_size(MAKE_HASHMAP(p));
 | 
					    return pa_hashmap_size(MAKE_HASHMAP_CONST(p));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pa_proplist_isempty(pa_proplist *p) {
 | 
					int pa_proplist_isempty(pa_proplist *p) {
 | 
				
			||||||
    pa_assert(p);
 | 
					    pa_assert(p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return pa_hashmap_isempty(MAKE_HASHMAP(p));
 | 
					    return pa_hashmap_isempty(MAKE_HASHMAP_CONST(p));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pa_proplist_equal(pa_proplist *a, pa_proplist *b) {
 | 
					int pa_proplist_equal(pa_proplist *a, pa_proplist *b) {
 | 
				
			||||||
| 
						 | 
					@ -690,8 +689,8 @@ int pa_proplist_equal(pa_proplist *a, pa_proplist *b) {
 | 
				
			||||||
    if (pa_proplist_size(a) != pa_proplist_size(b))
 | 
					    if (pa_proplist_size(a) != pa_proplist_size(b))
 | 
				
			||||||
        return 0;
 | 
					        return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    while ((a_prop = pa_hashmap_iterate(MAKE_HASHMAP(a), &state, &key))) {
 | 
					    while ((a_prop = pa_hashmap_iterate(MAKE_HASHMAP_CONST(a), &state, &key))) {
 | 
				
			||||||
        if (!(b_prop = pa_hashmap_get(MAKE_HASHMAP(b), key)))
 | 
					        if (!(b_prop = pa_hashmap_get(MAKE_HASHMAP_CONST(b), key)))
 | 
				
			||||||
            return 0;
 | 
					            return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (a_prop->nbytes != b_prop->nbytes)
 | 
					        if (a_prop->nbytes != b_prop->nbytes)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue