From owner-freebsd-bugs Fri Nov 15 14:00:06 1996 Return-Path: owner-bugs Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id OAA19962 for bugs-outgoing; Fri, 15 Nov 1996 14:00:06 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id OAA19956; Fri, 15 Nov 1996 14:00:04 -0800 (PST) Resent-Date: Fri, 15 Nov 1996 14:00:04 -0800 (PST) Resent-Message-Id: <199611152200.OAA19956@freefall.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@freefall.FreeBSD.org, ejc@gargoyle.bazzle.com, dob@nasvr1.cb.lucent.com Received: from gargoyle.bazzle.com (gargoyle.bazzle.com [206.103.246.190]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id NAA19604 for ; Fri, 15 Nov 1996 13:50:58 -0800 (PST) Received: (from ejc@localhost) by gargoyle.bazzle.com (8.8.2/8.6.12) id QAA15864; Fri, 15 Nov 1996 16:50:55 -0500 (EST) Message-Id: <199611152150.QAA15864@gargoyle.bazzle.com> Date: Fri, 15 Nov 1996 16:50:55 -0500 (EST) From: ejci@gargoyle.bazzle.com Reply-To: ejc@gargoyle.bazzle.com, dob@nasvr1.cb.lucent.com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: gnu/2035: STL deque bug Sender: owner-bugs@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >Number: 2035 >Category: gnu >Synopsis: deque bug, local gnu changes to deque header improperly applied >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Nov 15 14:00:02 PST 1996 >Last-Modified: >Originator: Eric J. Chet >Organization: >Release: FreeBSD 3.0-CURRENT i386 >Environment: -current as of 11/14/96 >Description: I found the bug in FreeBSD GNU STL version of deque.h. Looks like a source file maintenance error. >How-To-Repeat: #include #include int main() { deque a; for ( int i = 0 ; i < 8000 ; i++ ) { a.push_front( i ); } return 1; } >Fix: *** deque.h.ORG Fri Nov 8 15:36:38 1996 --- deque.h Fri Nov 8 15:36:46 1996 *************** void deque::allocate_at_begin() { *** 437,444 **** finish = iterator(finish.current, map + map_size / 4 + i + 1); } else { #ifdef __GNUG__ ! map_size = map_allocator_type::init_page_size(); ! map = map_allocator_type::allocate(map_size); #else *--start.node = p; start = iterator(p + __dq_buffer_size, start.node); --- 437,446 ---- finish = iterator(finish.current, map + map_size / 4 + i + 1); } else { #ifdef __GNUG__ ! // map_size = map_allocator_type::init_page_size(); ! // map = map_allocator_type::allocate(map_size); ! *--start.node = p; ! start = iterator(p + __dq_buffer_size, start.node); #else *--start.node = p; start = iterator(p + __dq_buffer_size, start.node); >Audit-Trail: >Unformatted: