10.06.2016 22:55, Tanu Kaskinen пишет:
---
 src/pulsecore/card.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
index bc5b75b..896e959 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
@@ -122,7 +122,6 @@ void pa_card_new_data_done(pa_card_new_data *data) {

 pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
     pa_card *c;
-    const char *name;
     void *state;
     pa_card_profile *profile;
     pa_device_port *port;
@@ -135,16 +134,15 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data 
*data) {

     c = pa_xnew0(pa_card, 1);

-    if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_CARD, c, 
data->namereg_fail))) {
+    if (!(c->name = pa_xstrdup(pa_namereg_register(core, data->name, 
PA_NAMEREG_CARD, c, data->namereg_fail)))) {

I think that the old code was more obvious.

pa_namereg_register() could return NULL, you checked for that immediately, and acted upon the error. Now you pass this NULL through pa_xstrdup(). This causes the reader to think what pa_xstrdup does with a NULL. Yes, it returns a NULL, but I had to look at the source.

         pa_xfree(c);
         return NULL;
     }

-    pa_card_new_data_set_name(data, name);
+    pa_card_new_data_set_name(data, c->name);
     pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_NEW], data);

     c->core = core;
-    c->name = pa_xstrdup(data->name);
     c->proplist = pa_proplist_copy(data->proplist);
     c->driver = pa_xstrdup(pa_path_get_filename(data->driver));
     c->module = data->module;


--
Alexander E. Patrakov
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to