### Method

# ECal ComponentBagItem set_user_data

since: 3.58

#### Declaration [src]

    void
    e_cal_component_bag_item_set_user_data (
      ECalComponentBagItem* self,
      gpointer user_data,
      GBoxedCopyFunc copy_user_data,
      GBoxedFreeFunc free_user_data
    )

#### Description [src]

Sets the user data members of the `self` in a safe way, meaning the function does not change the user data when it’s the same as that already set; otherwise it frees the current user data, if the free function was previously provided, and the assigns the three members to the self.

The function assumes owner ship of the `user_data`, optionally calling the `free_user_data` if provided, when the user_data instance is the same as the already set.

Available since: 3.58

#### Parameters

`user_data`

  Type: `gpointer`

  Custom user data, or `NULL`.

  The argument can be `NULL`.
  The instance takes ownership of the data, and is responsible for freeing it.

`copy_user_data`

  Type: `GBoxedCopyFunc`

  A copy function for the `user_data`, or `NULL`.

  The argument can be `NULL`.

`free_user_data`

  Type: `GBoxedFreeFunc`

  A free function for the `user_data`, or `NULL`.

  The argument can be `NULL`.