diff options
| -rw-r--r-- | src/extractors/bilibili.c | 13 | ||||
| -rw-r--r-- | src/extractors/extractor.c | 8 | ||||
| -rw-r--r-- | src/extractors/haokan.c | 4 | ||||
| -rw-r--r-- | src/extractors/youku.c | 14 | ||||
| -rw-r--r-- | src/main.c | 3 | ||||
| -rw-r--r-- | src/process_url.c | 33 | ||||
| -rw-r--r-- | src/ui.c | 4 | ||||
| -rw-r--r-- | src/utils/types.c | 7 | ||||
| -rw-r--r-- | src/utils/utils.c | 8 | ||||
| -rw-r--r-- | src/utils/utils.h | 2 | 
10 files changed, 47 insertions, 49 deletions
| diff --git a/src/extractors/bilibili.c b/src/extractors/bilibili.c index c4a628f..6112bef 100644 --- a/src/extractors/bilibili.c +++ b/src/extractors/bilibili.c @@ -381,7 +381,7 @@ static int download(Bilibili_options *bilibili_options) {    get(bilibili_options->api, &resp);    if (get_dash(resp, &dash)) {      LOG("Bilibili", "Get dash failed."); -    free_and_nullify((void **)&resp); +    free_and_nullify(resp);      dash_cleanup(&dash);      return 1;    }; @@ -414,7 +414,6 @@ static int download(Bilibili_options *bilibili_options) {      }      set_str_element(&callback_struct, 1, videofn);      add_url(video->baseUrl, NULL, videofn, NULL, NULL); -    free_and_nullify((void **)&videofn);    }    { @@ -429,10 +428,8 @@ static int download(Bilibili_options *bilibili_options) {      }      set_str_element(&callback_struct, 2, audiofn);      add_url(audio->baseUrl, NULL, audiofn, &bilibili_merge, &callback_struct); -    free_and_nullify((void **)&audiofn);    } -  free_and_nullify((void **)&filename); -  free_and_nullify((void **)&resp); +  free_and_nullify(resp);    dash_cleanup(&dash);    return 0;  } @@ -481,18 +478,18 @@ void bilibili_extract(struct options *options) {    DEBUG_PRINT("title: %s\n", bilibili_options.title);    if (generate_api(&bilibili_options, 127)) { -    free_and_nullify((void **)&bilibili_options.api); +    free_and_nullify(bilibili_options.api);      multipage_cleanup(&multipage_struct);      return;    }    DEBUG_PRINT("Generated API: %s\n", bilibili_options.api);    if (download(&bilibili_options)) { -    free_and_nullify((void **)&bilibili_options.api); +    free_and_nullify(bilibili_options.api);      multipage_cleanup(&multipage_struct);      return;    } -  free_and_nullify((void **)&bilibili_options.api); +  free_and_nullify(bilibili_options.api);    multipage_cleanup(&multipage_struct);  } diff --git a/src/extractors/extractor.c b/src/extractors/extractor.c index 833686e..c38c1f2 100644 --- a/src/extractors/extractor.c +++ b/src/extractors/extractor.c @@ -12,10 +12,10 @@ Site_map site_map = {{{"www.bilibili.com", SITE_BILIBILI},                       3};  void options_cleanup(Options *options) { -  free_and_nullify((void **)&options->URL); -  free_and_nullify((void **)&options->path); -  free_and_nullify((void **)&options->query); -  free_and_nullify((void **)&options->pagedata); +  free_and_nullify(options->URL); +  free_and_nullify(options->path); +  free_and_nullify(options->query); +  free_and_nullify(options->pagedata);  }  int extract(void *v) { diff --git a/src/extractors/haokan.c b/src/extractors/haokan.c index e2a8aef..f289c3e 100644 --- a/src/extractors/haokan.c +++ b/src/extractors/haokan.c @@ -38,8 +38,8 @@ void haokan_extract(Options *options) {      end:        free_str_array(&results); -      free_and_nullify((void **)&filename); -      free_and_nullify((void **)&videoURL); +      free_and_nullify(filename); +      free_and_nullify(videoURL);        return;      }      free_str_array(&results); diff --git a/src/extractors/youku.c b/src/extractors/youku.c index 4e5bc47..e8fa0a5 100644 --- a/src/extractors/youku.c +++ b/src/extractors/youku.c @@ -67,9 +67,9 @@ static int parse_jsondata(cJSON *json, Youku_data *youku_data) {  }  static void youku_options_cleanup(Youku_options *youku_options) { -  free_and_nullify((void **)&youku_options->vid); -  free_and_nullify((void **)&youku_options->utid); -  free_and_nullify((void **)&youku_options->api); +  free_and_nullify(youku_options->vid); +  free_and_nullify(youku_options->utid); +  free_and_nullify(youku_options->api);    cJSON_Delete(youku_options->json);  } @@ -147,13 +147,13 @@ void youku_extract(Options *options) {    char *resp = NULL;    if (get(youku_options.api, &resp)) {      LOG("Youku", "Get API data failed.\n"); -    free_and_nullify((void **)&resp); +    free_and_nullify(resp);      goto end;    }    // DEBUG_PRINT("resp: %s\n", resp);    youku_options.json = cJSON_Parse(resp); -  free_and_nullify((void **)&resp); +  free_and_nullify(resp);    Youku_data youku_data = {0};    if (parse_jsondata(youku_options.json, &youku_data)) {      LOG("Youku", "Parse jsondata failed.\n"); @@ -170,8 +170,8 @@ void youku_extract(Options *options) {            youku_data.height);    set_str_element(&callback_struct, 1, filename);    add_url(youku_data.m3u8_url, NULL, m3u8fn, youku_convert, &callback_struct); -  free_and_nullify((void **)&m3u8fn); -  free_and_nullify((void **)&filename); +  free_and_nullify(m3u8fn); +  free_and_nullify(filename);  end:    free_str_array(&results); @@ -66,6 +66,7 @@ int main(void) {        if (cookie_datum.ok) {          printf("[tomlc99] Found cookie string in config.toml, applying...\n");          cookie = cookie_datum.u.s; +        DEBUG_PRINT("Cookie: %s\n", cookie);        }      }    } @@ -189,5 +190,5 @@ int main(void) {    curl_cleanup(&stat);    nk_glfw3_shutdown(&glfw);    glfwTerminate(); -  return 0; +  exit(0);  } diff --git a/src/process_url.c b/src/process_url.c index 843fedf..e09647a 100644 --- a/src/process_url.c +++ b/src/process_url.c @@ -145,7 +145,7 @@ static void gen_fullpathfn(char *fullpathfn, const char *outdir,            outdir[strlen(outdir) - 1] == SPLITTER_CHAR ? "" : SPLITTER_STR, fn);  } -static int parse_url(const char *URL, const char *outdir, char **p_fn) { +static int parse_url(const char *URL, const char *outdir, char *fn) {    CURLUcode ue = logerr(curl_url_set(h, CURLUPART_URL, URL, 0));    if (ue && ue != CURLUE_NO_QUERY) {      return 1; @@ -205,7 +205,7 @@ static int parse_url(const char *URL, const char *outdir, char **p_fn) {    /* filename */ -  if (p_fn == NULL) { +  if (!fn) {      const char *patterns_str[1] = {"(?:.+\\/)([^#/?]+)"};      str_array_t results = create_str_array(0);      const str_array_t patterns = {(char **)patterns_str, 1}; @@ -229,9 +229,9 @@ static int parse_url(const char *URL, const char *outdir, char **p_fn) {        return 1;      }    } else { -    curl_c->outfn = malloc(strlen(outdir) + strlen(*p_fn) + 2); -    gen_fullpathfn(curl_c->outfn, outdir, *p_fn); -    free_and_nullify((void **)p_fn); +    curl_c->outfn = malloc(strlen(outdir) + strlen(fn) + 2); +    gen_fullpathfn(curl_c->outfn, outdir, fn); +    free_and_nullify(fn);    }    DEBUG_PRINT("File will be saved as: %s\n", curl_c->outfn);    DEBUG_PRINT("Got regular URL: %s\n", curl_c->URL); @@ -349,8 +349,7 @@ static int pull_part(void *a) {    return (int)res;  } -static int merge_and_cleanup(curl_conf_t **p_curl_c) { -  curl_conf_t *curl_c = *p_curl_c; +static int merge_and_cleanup(curl_conf_t *curl_c) {    if (corrupted) {      append_log("Cancelling...\n");    } else { @@ -390,9 +389,9 @@ static int merge_and_cleanup(curl_conf_t **p_curl_c) {    // Reset stat    curl_c->success_thrd = 0;    curl_c->total_thrd = 0; -  free_and_nullify((void **)&curl_c->URL); -  free_and_nullify((void **)&curl_c->outfn); -  free_and_nullify((void **)p_curl_c); +  free_and_nullify(curl_c->URL); +  free_and_nullify(curl_c->outfn); +  free_and_nullify(curl_c);    return 0;  } @@ -461,7 +460,7 @@ static char *callback_struct_convert_fullpath(char **p_filename) {    char *tmp = malloc(strlen(outdir_g) + strlen(*p_filename) + 2);    replace_illegal_char(*p_filename);    gen_fullpathfn(tmp, outdir_g, *p_filename); -  free_and_nullify((void **)p_filename); +  free_and_nullify(*p_filename);    return tmp;  } @@ -470,7 +469,7 @@ void add_cookie(char **p_cookie) {    if (cookie_g) {      char *tmp = malloc(strlen(cookie_g) + strlen(cookie) + 3);      sprintf(tmp, "%s; %s", cookie_g, cookie); -    free_and_nullify((void **)&cookie_g); +    free_and_nullify(cookie_g);      cookie_g = tmp;    } else {      cookie_g = cookie; @@ -501,13 +500,13 @@ void curl_cleanup(status_t *stat) {      }      mtx_unlock(&mtx);      if (!stat->is_done) { -      merge_and_cleanup(&curl_conf); +      merge_and_cleanup(curl_conf);      }      mtx_destroy(&mtx);      cnd_destroy(&cnd);    }    free_queue(&dl_queue); -  free_and_nullify((void **)&cookie_g); +  free_and_nullify(cookie_g);    curl_url_cleanup(h);    curl_global_cleanup();  } @@ -542,7 +541,7 @@ void poll_status(status_t *stat) {          int r;          thrd_join(tid[i], &r);        } -      merge_and_cleanup(&curl_conf); +      merge_and_cleanup(curl_conf);        // Perform the callback        if (is_empty_queue(&dl_queue) && callback_g && !corrupted) {          thrd_t cb_thrd; @@ -567,7 +566,7 @@ int get(const char *URL, char **pdstr) {    CURLcode res = logerr(curl_easy_perform(curl));    *pdstr = malloc(pagedata.len + 1);    strcpy(*pdstr, pagedata.string); -  free_and_nullify((void **)&pagedata.string); +  free_and_nullify(pagedata.string);    curl_easy_cleanup(curl);    return res;  } @@ -605,7 +604,7 @@ void add_url(const char *URL, const char *outdir, const char *fn,    }    // Pass our cache (outdir_g) to parse_url() -  if (parse_url(URL, outdir_g, &filename)) { +  if (parse_url(URL, outdir_g, filename)) {      DEBUG_PRINT("parse_url() failed with error.\n");      return; // Parse failed, quit the task directly    }; @@ -42,8 +42,8 @@ void load_ui(struct ui_struct *ui) {        sprintf(status_string, "%s/%s, %hhu%%", cur_ts, total_ts,                (unsigned char)pct); -      free_and_nullify((void **)&cur_ts); -      free_and_nullify((void **)&total_ts); +      free_and_nullify(cur_ts); +      free_and_nullify(total_ts);      }    }    if (ui->stat->is_done) { diff --git a/src/utils/types.c b/src/utils/types.c index f986ba3..e414f92 100644 --- a/src/utils/types.c +++ b/src/utils/types.c @@ -15,7 +15,7 @@ generic_array_t create_array(size_t elem_size, size_t n) {  }  void free_array(generic_array_t *array) { -  free_and_nullify((void **)&array->data); +  free_and_nullify(array->data);    array->n = 0;  } @@ -49,11 +49,12 @@ str_array_t create_str_array(size_t n) {    return array;  } +// NOTE: would free both the array and all its elements  void free_str_array(str_array_t *array) {    for (size_t i = 0; i < array->n; i++) {      free(array->str[i]);    } -  free_and_nullify((void **)&array->str); +  free_and_nullify(array->str);    array->n = 0;  } @@ -115,7 +116,7 @@ data_t dequeue(queue_t *queue) {    node_t *temp = queue->front;    data_t data = temp->data;    queue->front = temp->next; -  free_and_nullify((void **)&temp); +  free_and_nullify(temp);    if (queue->front == NULL) {      queue->rear = NULL; diff --git a/src/utils/utils.c b/src/utils/utils.c index f7de635..ae60eee 100644 --- a/src/utils/utils.c +++ b/src/utils/utils.c @@ -170,9 +170,9 @@ int repchr(char *str, char t, char r) {    return c;  } -void free_and_nullify(void **p) { -  if (*p) { -    free(*p); -    *p = NULL; +void free_and_nullify(void *p) { +  if (p) { +    free(p); +    p = NULL;    }  } diff --git a/src/utils/utils.h b/src/utils/utils.h index a96ab70..5a26cf2 100644 --- a/src/utils/utils.h +++ b/src/utils/utils.h @@ -14,6 +14,6 @@ const char *mimeType2ext(const char *mimeType);  int repchr(char *str, char t, char r);  /* NOTICE: pass a pointer-to-pointer to free the original pointer. */ -void free_and_nullify(void **p); +void free_and_nullify(void *p);  #endif | 
