Thanks Jack,

If I didn't make a comment below then I implemented your suggestion.

> 
> Hi everyone.
> 
> Here are my comments for this round:
> 
> BootEnvironment.py:
> 
> This is the right idea,but the the stuff added
> (55-57, 68-69, 79) are
> constants.  They probably should be classbound.  No
> need to create new
> sets of these for each instance.  To make them
> classbound, initialize
> them outside of __init__.  Then refer to them as
> classname.varname.
> e.g. BEMaxWidths.DATASET vs beWidth.DATASET
> 
> beadm.py:
> ---------
> Things look much better.  Thanks for adding headers
> for public functions.
> 
> 250: Nit: I suggest making a general question
> function, but OK...
> 
> 397, 401: optimization: save len(beName_mntPoint) in
> a variable and
> refer back to at these locations.  No need to call it
> three times for
> the same result.
> 
> 436: len(opts) != 1
> 
> 478: len(BeNames) == 0 is redundant with len(beNames)
> != 2
> 
> 609: pool isn't used before it is overwritten either
> on line 640 or

It could be used at 685 without it being set at 609.
 
> 676.  Also no need to init on line 600.

If it is not initialized a traceback could be produced on line 685.
 
> 
> 616-619:  Why not init beName to None

beName is passed in. Would overwrite value.

> 
> 866-867  Rather than [idx-2] or [idx+4] it would be
> clearer to say what
> the proper value is using the constants.  E.g. where
> idx =
> beWidth.STATUS, say [beWidth.ACTIVE] or
> [beWidth.MOUNTED] (or if you use
> the classbound names that would be BEMaxWidths.ACTIVE
> or
> BEMaxWidths.MOUNTED).  This will make the code more
> understandable.
> 
> Assuming beWidth is of the class BEMaxWidths, doing
> the above you'd see
> that beWidth.MOUNTED was left out on line 57 too...
>  Disregard this
> omment if I am incorrect.
> 
> 845, 821,807,895, 918,939, 990-991,1009-1010: Sim to
> 866-867, though not
> quite as important as the index is used by itself.
>  Still it would be
> mprove code readability though...
> 
> messages.py:
> ------------
> I don't see any changes related to my suggestions
> here, despite emails
> that things had been fixed.  Were these changes lost
> in a merge perhaps?
> 

I'm going to have to address this as a bug so it won't be done for this code 
review.

> libbe_glue/Makefile:
> ---------------------
> Changes look fine.
> 
> libbe_glue.c:
> -------------
> 153, 159: nvlist_free(beAttrs) missing.  May also
> need to check for NULL
> first.
> 
> beCopy: Error returns are perhaps the only place
> where a goto is called
> for, and this function could use one.  Instead of
> duplicating these
> three lines:
> 
> nvlist_free(beAttrs);
> nvlist_free(beProps);
> return (Py_BuildValue("i", 1));
> 
> all over the place, use a goto in their place, and
> add the goto label
> and these lines as the last four lines of the
> function.  The code will
> be condensed, and thus more readable.
> 
> 207: return (Py_BuildValue("", NULL));
> 
> beList: Ditto the comments made for using a goto for
> error handling.
> 
> beActivate:
> 315: The variable "tuple" has a deceptive name as it
> returns an integer
> object not a tuple.
> 318: return (Py_BuildValue("i", 1);
> 
> Throughout the module: stuff returned by
> Py_BuildValue() needs to be
> Py_DECREF()ed if an error is returned from the
> function which called
> Py_BuildValue() and the created object is to be
> thrown away.  (Recent
> email exchanged with Tim on this won't be reflected
> in this code review,
> however.) ... may be better to stick with
> PyString_FromString instead of
> using Py_BuildValue?

If an error happens in Py_BuildValue() then execution is halted and one object 
is not Py_DECREF()ed which will be garbaged collected anyway. Also since the 
value passed to Py_BuildValue() is guaranteed to be not NULL the only 
legitimate errors that can happen are Python internal errors.   Also in order 
to Py_DECREF() the object it has to be set to a variable and that variable 
passed in and Py_DECREF()ed on failure. The ugliness of that is not worth 
checking for the failure. So I'm not going to make this change. I did however 
change the Py_BuildValue() calls to PyString_FromString() since errors from 
PyString_FromString() are handled better.

Thanks again Jack
Tim
 
> 
> beDestroy:  355, 358: same comments as for
> beActivate.
> beDestroySnapshot: 397, 400: same comments as for
> beActivate.
> beRename: 441: same comment about the name "tuple"
> beMount: 486: same comment about the name "tuple"
> beUnmount: 528: same comment about the name "tuple"
> beRollback: 572: same comment about the name "tuple"
> 
> beDestroySnapshot: Comments similar to beActivate().
> 
> nvlist_alloc_w() is never called and can be removed.
> 
> libbe_glue.h:
> -------------
> File looks fine.
> 
> Ethan Quach wrote:
> > Hello again caimaniacs,
> >
> > Thanks for those that provided comments for the
> early code review.
> > Posted here is the incremental webrev of the
> changes for code review
> > comments plus other fixes that we've pushed since.
> >
> >
> http://cr.opensolaris.org/~equach/webrev.SnapUpgrade.2
> >
> >
> > Additionally as a reference, below is the webrev of
> the overall snap
> > upgrade gate synced up against the current
> slim_source base.
> >
> >
> http://cr.opensolaris.org/~equach/webrev.SnapUpgrade
> >
> >
> > Again comments welcomed, particularly from those
> who provided the
> > initial comments on the early review.
> >
> >
> > Thanks,
> > -Ethan
> > _______________________________________________
> > caiman-discuss mailing list
> > caiman-discuss at opensolaris.org
> >
> http://mail.opensolaris.org/mailman/listinfo/caiman-di
> scuss
> >   
> 
> 
> _______________________________________________
> caiman-discuss mailing list
> caiman-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/caiman-di
> scuss
--
This message posted from opensolaris.org

Reply via email to