Skip to content

[question] 不要な変数?など #5

@blacktoad30

Description

@blacktoad30

src/gimv_thumb_view.cにて、気になる箇所があります。

  2026 | void
  2027 | gimv_thumb_view_open_image (GimvThumbView *tv, GimvThumb *thumb, gint type)
  2028 | {
  2029 |    GimvThumbWin *tw;
  2030 |    GimvImageWin *iw = NULL;
  2031 |    GimvImageView   *iv = NULL;
  2032 |    GList *current, *node;
  2033 |    const gchar *image_name, *ext;
  2034 |    gchar *filename, *tmpstr;
  2035 | 
  2036 |    g_return_if_fail (GIMV_IS_THUMB_VIEW (tv) && thumb);
  2037 | 
  2038 |    tw = tv->tw;
  2039 |    g_return_if_fail (GIMV_IS_THUMB_WIN (tw));
  2040 | 
  2041 |    image_name = gimv_image_info_get_path (thumb->info);
  2042 |    g_return_if_fail (image_name && *image_name);
  2043 |    filename = g_strdup (image_name);
  2044 | 
  2045 |    gchar *basename = g_path_get_basename (filename);
  2046 |    if (!strcmp ("..", basename)) {
  2047 |       tmpstr = filename;
  2048 |       filename = g_dirname (filename);
  2049 |       g_free (tmpstr);
  2050 |       if (filename) {
  2051 |          tmpstr = filename;
  2052 |          filename = g_dirname (filename);
  2053 |          g_free (tmpstr);
  2054 |       }
  2055 |       tmpstr = NULL;
  2056 |    }

まず、2046~2056行目のif文の中で、なぜtmpstrが必要なのかが分かりません。filenameのポインタを代入した後は特に利用することもなくg_free()されているので、これは削除しても良いと思うのですが、いかがでしょうか。

次に、入れ子の中のif文で、2回目のfilename = g_dirname (filename)をしているのも気になりました。条件をANDで一纏めにできそうです。

glibの仕様を把握できていないか、勘違いだったらすみません。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions