On 11/03/2016 06:00 PM, Stefan Hajnoczi wrote:
On Thu, Nov 03, 2016 at 11:51:28AM +0800, Xiao Guangrong wrote:
+static void nvdimm_init_fit_buffer(NvdimmFitBuffer *fit_buf)
+{
+ fit_buf->fit = g_array_new(false, true /* clear */, 1);
+}
+
+static void nvdimm_build_fit_buffer(NvdimmFitBuffer *fit_buf)
+{
+ g_array_free(fit_buf->fit, true);
+ fit_buf->fit = nvdimm_build_device_structure();
In the previous revision I pointed out that it's messy to inline
g_array_new(false, true /* clear */, 1) in nvdimm_init_fit_buffer() when
the data structure is normally created by
nvdimm_build_device_structure(). You didn't respond.
Oh, sorry for that.
Is it possible to call nvdimm_build_device_structure() in
nvdimm_init_fit_buffer() so we don't need to duplicate the details of
how the GArray is created?
Actually, i tried your suggestion however i noticed it makes the code
little confuse, as we construct the fit by calling
nvdimm_build_device_structure() whose name shows the fit will be
rebuild but do not set .dirty in the init path.
g_array_new(false, true /* clear */, 1) is a more clear way to
show this is just a empty array.