On 05/16/2012 11:55 AM, Travis Vitek wrote:
I approve the change, but with one caveat. The branching policy [1] indicates that you should commit your changes directly to the 4.2.x branch. They should be merged from 4.2.x to 4.3.x, and then from 4.3.x to trunk.
The test in the issue should be committed with the patch (after adding the necessary asserts, being renamed to follow the naming convention for regression tests, i.e., something like regress/27.basic_ios.stdcxx-1058.cpp, and decorated with the ASF license header).
It has been a long time since I've worked actively on the stdcxx project, but it seems that if seeking feedback on a patch before committing you would send something to the list. It seems that trivial changes were committed to the appropriate branch without prior review. Unfortunately, the committers page [2] indicates that my memory is wrong.
I think the two are subtly inconsistent. At one point, I think we wanted to commit to trunk first and then merge to branches. That seems to be the safer way to work. I'm not sure why we set up the branching policy to commit to the most restrictive branch first. It might be in the archives. Or we can change it. Other than that, the stdcxx index page is out of date. It doesn't reflect that Stefan is both a committer and a PMC member, and it still lists me as PMC chair. I viewed it as part of my job to update the page when I chaired the project. But I wouldn't expect the current chair to do it. So if we want to keep the site up to date we'll need to decide who should update these things (anyone with commit permissions can). Martin
Travis [1] http://wiki.apache.org/stdcxx/Branching [2] http://stdcxx.apache.org/index.html#committers Index: 4.2.x/src/iostore.cpp =================================================================== --- 4.2.x/src/iostore.cpp (revision 1055501) +++ 4.2.x/src/iostore.cpp (working copy) @@ -335,8 +335,14 @@ // delete existing arrays, if any; _C_usr will only be deleted // if `rhs' contains no user data (see below) operator delete (_C_usr->_C_iarray); + _C_usr->_C_iarray = 0; + _C_usr->_C_isize = 0; operator delete (_C_usr->_C_parray); + _C_usr->_C_parray = 0; + _C_usr->_C_psize = 0; operator delete (_C_usr->_C_cbarray); + _C_usr->_C_cbarray = 0; + _C_usr->_C_cbsize = 0; } else if (ia || pa || cba || ptie) { // allocation may throw