From: Alexander Nozdrin Date: June 7 2011 4:35pm Subject: bzr commit into mysql-trunk branch (alexander.nozdrin:3171) List-Archive: http://lists.mysql.com/commits/138805 Message-Id: <201106071636.p57Ga1gw005048@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7818900256895163012==" --===============7818900256895163012== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/alik/MySQL/bzr/00/bug55843/mysql-trunk-bug55843-01/ based on revid:alexander.nozdrin@stripped 3171 Alexander Nozdrin 2011-06-07 General improvements in sql_list.h: - reduce copy & paste - introduce push_front(void *, MEM_ROOT *) modified: sql/sql_list.h === modified file 'sql/sql_list.h' --- a/sql/sql_list.h 2011-05-26 15:20:09 +0000 +++ b/sql/sql_list.h 2011-06-07 16:35:40 +0000 @@ -197,36 +197,19 @@ public: inline base_list(bool error) { } inline bool push_back(void *info) { - if (((*last)=new list_node(info, &end_of_list))) - { - last= &(*last)->next; - elements++; - return 0; - } - return 1; + return push_back_impl(new list_node(info, &end_of_list)); } inline bool push_back(void *info, MEM_ROOT *mem_root) { - if (((*last)=new (mem_root) list_node(info, &end_of_list))) - { - last= &(*last)->next; - elements++; - return 0; - } - return 1; + return push_back_impl(new (mem_root) list_node(info, &end_of_list)); } inline bool push_front(void *info) { - list_node *node=new list_node(info,first); - if (node) - { - if (last == &first) - last= &node->next; - first=node; - elements++; - return 0; - } - return 1; + return push_front_impl(new list_node(info,first)); + } + inline bool push_front(void *info, MEM_ROOT *mem_root) + { + return push_front_impl(new (mem_root) list_node(info,first)); } void remove(list_node **prev) { @@ -356,6 +339,30 @@ protected: if (last == &(node->next)) last= &new_node->next; } + +private: + inline bool push_front_impl(list_node *node) + { + if (!node) + return true; + + if (last == &first) + last= &node->next; + first=node; + elements++; + return false; + } + + inline bool push_back_impl(list_node *node) + { + if (!node) + return true; + + *last= node; + last= &(*last)->next; + elements++; + return false; + } }; @@ -459,6 +466,8 @@ public: inline bool push_back(T *a, MEM_ROOT *mem_root) { return base_list::push_back(a, mem_root); } inline bool push_front(T *a) { return base_list::push_front(a); } + inline bool push_front(T *a, MEM_ROOT *mem_root) + { return base_list::push_front(a, mem_root); } inline T* head() {return (T*) base_list::head(); } inline T** head_ref() {return (T**) base_list::head_ref(); } inline T* pop() {return (T*) base_list::pop(); } --===============7818900256895163012== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/alexander.nozdrin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: alexander.nozdrin@stripped\ # vk1kpvnmz1ttrpim # target_branch: file:///home/alik/MySQL/bzr/00/bug55843/mysql-trunk-\ # bug55843-01/ # testament_sha1: 103f689cf47176eab245fb8c4721274ec45e346d # timestamp: 2011-06-07 20:35:46 +0400 # base_revision_id: alexander.nozdrin@stripped\ # 8x9towku2dxdif30 # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWZXccKAAAiBfgFAQcX///3KD lAC////6UATsns7bKm4dtA5drBJIkaYIxTaaaNNJomw1Tymm9UD1BoD1BJQibBGQmk9KPSekHqaA AM1ADQEigU2QgptT1PUeJpNGaEAMjQ0aMg5piYCNMCMIwAAABMIwEkiaaRkwTU08mpPTZUwn6o2o yaA00AHoDUdqbnp47r16l1uuaJdhzlIP2Z1huhunfiCJREfHK4FHfl5JRi83pkV8qQKAkvH18gzr KPwPj2Ns1Fjk7NLbFt7Q/ksNu2M9JDUyLg9b1O6bnG1tK7450Mb8V+tX7qDnpuGl068ruUmYbMw4 j8cY9hiUW5ry2D1sr37aBzCiAnsKAeUDDA9PBi1ktANzxhPe4MDkeslb7DED1XFgirqVNeWZfa7V nn2k+8DWkZagYjPfWebdNLprBc3OKD4TGQ0ToMkIfM1/ay3qRBoKeZBrmRgWJA5rTSZRyp3yyg2R fP9ZHuk0zeI1N/XaIa5hW6yvXCPUpyZ+50nqgiz449O8xzMGN11N9nM8/MpkL/Cn1tjr2CHoiRcs VAtmuVjgv6FxUxtoey6JJa0Eye4wxrk0Vm8jolCypo2RISwwv9FnR1IMytN1bXM4G8n3eMm6mZWG Ut2ors+6sVx2aWExuefQaEMaYvTUE1ufV9yBs8Mr4QUpPnAwvLChsQb6c+aVMhjccWMydZmWayEy u4uzR1KyltMSlJWhfp2rSji4eQ0aSssIlCA2RftukOOn/Llw02XXnl6nOC/OGybnjAzzinluhQsF 1XW84J4D6RkTz9ZP4NT8mzMyOSfD79XGVSNOFWxv9PvUr1JPwXgvFPrZkW4Rfnn63MzM4MzMHPFc eO1GqQ8djwliY9/h2LkkZS5cDNiDuG1LYXDO/WFZDVk5JF9CKLEOsOzdKapuenvXhZeeg8K+HADz JufTzkMFbs1MwlgkTZYCGSbwqIvQrySrPkTnpjR8j4IXdAkR+VFO5bS7iTcUhtExqXljMoW+LPQO BbaSSOn2MR3ERaQz5LYWdLKEOk5XXFG/dBhnTfXuxpFmf5adpaj0ZmXM/uJatiaogtdcIceLx6Fa FCQxFSQVpt4SSKyHac/SMex5YZGg+JxNZby0jh5mv26BYjl0SbhrOKLSeAqvW/GO2iHsEXQpS7zY 1BSWbyNixdG5PRG1XigRFzEGYR2BuCrwPexKhsdsLg2B1hqQs6IPxv3RE7MZTWBxFx+64YheLyOA VhW4Hhuv6P06itIYif3YI1lwWJTmIQw7i95NOG0QzUIwXGWFZQURXRA03+ijqniRFsZ20W95IkzD ombUQEO7ynXIEByQ4IPqDkSCtucGQrxfw3GnnToIr21hWMmVAwmXcXiw50KJUVlQ3gqh76JcAaUu rxSGGC2wVRUgv9iIy9C07204l3RUURULbI81Yctgi0e0V+FhW18s4IXqIJJ3NqghtBaFFUhcTYzg qKFTag75jnSmFEeLEIwcWMamBlZ5jLbjeIZyZOYMiq9n0Z4h/NzTSmHCYyEENQgKMcUPRqB8QNDh BHaNScQYojHNrE287XzioBFfNchpIUijk9ip8BVQQ1WvQnnTaOxaupBiIwpurVQWClF7S4gQCVeS ckVpkR2L6nUlhMkcaSbAD/i7kinChISu44UA --===============7818900256895163012==--