On Wed, Oct 16, 2019 at 10:53:00AM +0300, Andy Shevchenko wrote: > On Tue, Oct 15, 2019 at 11:12:11AM -0700, Dmitry Torokhov wrote: > > On Tue, Oct 15, 2019 at 03:07:26PM +0300, Andy Shevchenko wrote: > > > On Fri, Oct 11, 2019 at 04:07:12PM -0700, Dmitry Torokhov wrote: > > > > Because property_copy_string_array() stores the newly allocated pointer in the > > > > destination property, we have an awkward code in property_entry_copy_data() > > > > where we fetch the new pointer from dst. > > > > > > I don't see a problem in this function. > > > > > > Rather 'awkward code' is a result of use property_set_pointer() which relies on > > > data type. > > > > No, the awkwardness is that we set the pointer once in > > property_copy_string_array(), then fetch it in > > property_entry_copy_data() only to set it again via > > property_set_pointer(). > > Yes, since property_set_pointer is called independently > on the type of the value. We still call property_set_pointer() independently of the type of the value even with this patch. The point is that we do not set the pointer in property_copy_string_array(), so we only set the pointer once. We used to have essentially for string arrays: copy data set pointer in dst get pointer from dst set pointer in dst With this patch we have: copy data set pointer in dst > > > > This is confising and awkward and I believe it > > is cleaner for property_copy_string_array() to give a pointer to a copy > > of a string array, and then property_entry_copy_data() use it when > > handling the destination structure. > > We probably need a 3rd opinion here. I think I can still convince you ;) Thanks. -- Dmitry