fix stringshare use in e_remember

SVN revision: 83716
This commit is contained in:
Mike Blumenkrantz 2013-02-07 08:08:21 +00:00
parent 25e3f657e3
commit 3851bd2ba3
1 changed files with 10 additions and 15 deletions

View File

@ -308,14 +308,10 @@ e_remember_default_match_set(E_Remember *rem, E_Border *bd)
const char *title, *clasz, *name, *role; const char *title, *clasz, *name, *role;
int match; int match;
if (rem->name) eina_stringshare_del(rem->name); eina_stringshare_replace(&rem->name, NULL);
if (rem->class) eina_stringshare_del(rem->class); eina_stringshare_replace(&rem->class, NULL);
if (rem->title) eina_stringshare_del(rem->title); eina_stringshare_replace(&rem->title, NULL);
if (rem->role) eina_stringshare_del(rem->role); eina_stringshare_replace(&rem->role, NULL);
rem->name = NULL;
rem->class = NULL;
rem->title = NULL;
rem->role = NULL;
name = bd->client.icccm.name; name = bd->client.icccm.name;
if (!name || name[0] == 0) name = NULL; if (!name || name[0] == 0) name = NULL;
@ -333,18 +329,18 @@ e_remember_default_match_set(E_Remember *rem, E_Border *bd)
if (name && clasz) if (name && clasz)
{ {
match |= E_REMEMBER_MATCH_NAME | E_REMEMBER_MATCH_CLASS; match |= E_REMEMBER_MATCH_NAME | E_REMEMBER_MATCH_CLASS;
rem->name = eina_stringshare_add(name); rem->name = eina_stringshare_ref(name);
rem->class = eina_stringshare_add(clasz); rem->class = eina_stringshare_ref(clasz);
} }
else if ((title = e_border_name_get(bd)) && title[0]) else if ((title = e_border_name_get(bd)) && title[0])
{ {
match |= E_REMEMBER_MATCH_TITLE; match |= E_REMEMBER_MATCH_TITLE;
rem->title = eina_stringshare_add(title); rem->title = eina_stringshare_ref(title);
} }
if (role) if (role)
{ {
match |= E_REMEMBER_MATCH_ROLE; match |= E_REMEMBER_MATCH_ROLE;
rem->role = eina_stringshare_add(role); rem->role = eina_stringshare_ref(role);
} }
if (bd->client.netwm.type != ECORE_X_WINDOW_TYPE_UNKNOWN) if (bd->client.netwm.type != ECORE_X_WINDOW_TYPE_UNKNOWN)
{ {
@ -844,9 +840,8 @@ _e_remember_cb_hook_pre_post_fetch(void *data __UNUSED__, void *border)
{ {
if (rem->prop.border) if (rem->prop.border)
{ {
if (bd->bordername) eina_stringshare_del(bd->bordername); eina_stringshare_replace(&bd->bordername, NULL);
if (rem->prop.border) bd->bordername = eina_stringshare_add(rem->prop.border); bd->bordername = eina_stringshare_ref(rem->prop.border);
else bd->bordername = NULL;
bd->client.border.changed = 1; bd->client.border.changed = 1;
} }
} }