From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29404 invoked by alias); 10 Nov 2011 18:52:41 -0000 Received: (qmail 29390 invoked by uid 22791); 10 Nov 2011 18:52:40 -0000 X-SWARE-Spam-Status: No, hits=-3.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-qw0-f41.google.com (HELO mail-qw0-f41.google.com) (209.85.216.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 10 Nov 2011 18:52:23 +0000 Received: by qadc11 with SMTP id c11so3421623qad.0 for ; Thu, 10 Nov 2011 10:52:22 -0800 (PST) Received: by 10.224.183.15 with SMTP id ce15mr6963490qab.42.1320951142487; Thu, 10 Nov 2011 10:52:22 -0800 (PST) MIME-Version: 1.0 Received: by 10.224.183.15 with SMTP id ce15mr6963480qab.42.1320951142391; Thu, 10 Nov 2011 10:52:22 -0800 (PST) Received: by 10.224.6.76 with HTTP; Thu, 10 Nov 2011 10:52:22 -0800 (PST) In-Reply-To: References: <20111029081242.9FA26246191@ruffy.mtv.corp.google.com> Date: Thu, 10 Nov 2011 18:52:00 -0000 Message-ID: Subject: [RFA] [python] Fix field list of typedef regression From: Doug Evans To: Tom Tromey Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=20cf303b39c19b9efa04b165e7dd X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-11/txt/msg00292.txt.bz2 --20cf303b39c19b9efa04b165e7dd Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1177 On Sat, Oct 29, 2011 at 12:12 PM, Tom Tromey wrote: >>>>>> "Doug" =3D=3D Doug Evans writes: > > Doug> Question: What's the right way to handle ref counting here? > > Doug> + =A0 =A0 =A0CHECK_TYPEDEF (checked_type); > Doug> + =A0 =A0 =A0if (checked_type !=3D type) > Doug> + =A0 =A0 =A0 =A0self =3D type_to_type_object (checked_type); > Doug> + =A0 =A0 =A0/* FIXME: reference counting of self? */ > > type_to_type_object returns a new reference. > So the caller is responsible for decref'ing it. > > I think assigning to self is unexpected. > > Doug> + =A0 =A0} > Doug> + =A0GDB_PY_HANDLE_EXCEPTION (except); > > I'd pull the type_to_type_object call out of the TRY_CATCH. > Then you don't have to handle a decref on the exception return. > > Tom > Thanks. I think this gets the ref-counting correct. I singlestepped through it and it looked ok anyways. Ok to check in? 2011-11-10 Doug Evans * python/py-type.c (typy_fields_items): Call check_typedef. testsuite/ * gdb.python/py-type.c (TS): New typedef. (ts): New global. * gdb.python/py-type.exp: Test field list of typedef. --20cf303b39c19b9efa04b165e7dd Content-Type: text/plain; charset=US-ASCII; name="gdb-111110-py-type-typedef-2.patch.txt" Content-Disposition: attachment; filename="gdb-111110-py-type-typedef-2.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_guu46qkp0 Content-length: 3758 MjAxMS0xMS0xMCAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog cHl0aG9uL3B5LXR5cGUuYyAodHlweV9maWVsZHNfaXRlbXMpOiBDYWxsIGNo ZWNrX3R5cGVkZWYuCgoJdGVzdHN1aXRlLwoJKiBnZGIucHl0aG9uL3B5LXR5 cGUuYyAoVFMpOiBOZXcgdHlwZWRlZi4KCSh0cyk6IE5ldyBnbG9iYWwuCgkq IGdkYi5weXRob24vcHktdHlwZS5leHA6IFRlc3QgZmllbGQgbGlzdCBvZiB0 eXBlZGVmLgoKSW5kZXg6IHB5dGhvbi9weS10eXBlLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9weXRob24v cHktdHlwZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI4CmRpZmYgLXUg LXAgLXIxLjI4IHB5LXR5cGUuYwotLS0gcHl0aG9uL3B5LXR5cGUuYwk0IE5v diAyMDExIDExOjU3OjA0IC0wMDAwCTEuMjgKKysrIHB5dGhvbi9weS10eXBl LmMJMTAgTm92IDIwMTEgMTg6NDM6NDIgLTAwMDAKQEAgLTI5NCwxNCArMjk0 LDMzIEBAIG1ha2VfZmllbGRpdGVtIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IGkKIHN0YXRpYyBQeU9iamVjdCAqCiB0eXB5X2ZpZWxkc19pdGVtcyAoUHlP YmplY3QgKnNlbGYsIGVudW0gZ2RicHlfaXRlcl9raW5kIGtpbmQpCiB7Cisg IFB5T2JqZWN0ICpweV90eXBlID0gc2VsZjsKICAgUHlPYmplY3QgKnJlc3Vs dCA9IE5VTEwsICppdGVyID0gTlVMTDsKLSAgCi0gIGl0ZXIgPSB0eXB5X21h a2VfaXRlciAoc2VsZiwga2luZCk7Ci0gIGlmIChpdGVyID09IE5VTEwpCi0g ICAgcmV0dXJuIE5VTEw7Ci0gICAgCi0gIHJlc3VsdCA9IFB5U2VxdWVuY2Vf TGlzdCAoaXRlcik7Ci0gIFB5X0RFQ1JFRiAoaXRlcik7CisgIHZvbGF0aWxl IHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKKyAgc3RydWN0IHR5cGUg KnR5cGUgPSAoKHR5cGVfb2JqZWN0ICopIHB5X3R5cGUpLT50eXBlOworICBz dHJ1Y3QgdHlwZSAqY2hlY2tlZF90eXBlID0gdHlwZTsKKworICBUUllfQ0FU Q0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAgIHsKKyAgICAgIENI RUNLX1RZUEVERUYgKGNoZWNrZWRfdHlwZSk7CisgICAgfQorICBHREJfUFlf SEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKKworICBpZiAoY2hlY2tlZF90 eXBlICE9IHR5cGUpCisgICAgcHlfdHlwZSA9IHR5cGVfdG9fdHlwZV9vYmpl Y3QgKGNoZWNrZWRfdHlwZSk7CisgIGl0ZXIgPSB0eXB5X21ha2VfaXRlciAo cHlfdHlwZSwga2luZCk7CisgIGlmIChjaGVja2VkX3R5cGUgIT0gdHlwZSkK KyAgICB7CisgICAgICAvKiBOZWVkIHRvIHdyYXAgdGhpcyBpbiBicmFjZXMg YmVjYXVzZSBQeV9ERUNSRUYgaXNuJ3Qgd3JhcHBlZAorCSBpbiBhIGRve313 aGlsZSgwKS4gICovCisgICAgICBQeV9ERUNSRUYgKHB5X3R5cGUpOworICAg IH0KKyAgaWYgKGl0ZXIgIT0gTlVMTCkKKyAgICB7CisgICAgICByZXN1bHQg PSBQeVNlcXVlbmNlX0xpc3QgKGl0ZXIpOworICAgICAgUHlfREVDUkVGIChp dGVyKTsKKyAgICB9CisKICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDog dGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktdHlwZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjUKZGlmZiAtdSAtcCAtcjEuNSBweS10eXBlLmMKLS0tIHRlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LXR5cGUuYwkyOCBTZXAgMjAxMSAyMDowNjowMSAtMDAw MAkxLjUKKysrIHRlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXR5cGUuYwkxMCBO b3YgMjAxMSAxODo0ODo1MiAtMDAwMApAQCAtMjEsNiArMjEsOSBAQCBzdHJ1 Y3QgcwogICBpbnQgYjsKIH07CiAKK3R5cGVkZWYgc3RydWN0IHMgVFM7CitU UyB0czsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiBzdHJ1Y3QgQwogewpJbmRl eDogdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5leHAKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS10eXBlLmV4cCx2CnJldHJpZXZpbmcgcmV2 aXNpb24gMS4xNApkaWZmIC11IC1wIC1yMS4xNCBweS10eXBlLmV4cAotLS0g dGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5leHAJMjggU2VwIDIwMTEg MjA6MDY6MDEgLTAwMDAJMS4xNAorKysgdGVzdHN1aXRlL2dkYi5weXRob24v cHktdHlwZS5leHAJMTAgTm92IDIwMTEgMTg6NDg6NTIgLTAwMDAKQEAgLTY0 LDYgKzY0LDEwIEBAIHByb2MgcnVudG9fYnAge2JwfSB7CiBwcm9jIHRlc3Rf ZmllbGRzIHtsYW5nfSB7CiAgIGdsb2JhbCBnZGJfcHJvbXB0CiAKKyAgIyAu ZmllbGRzKCkgb2YgYSB0eXBlZGVmIHNob3VsZCBzdGlsbCByZXR1cm4gdGhl IHVuZGVybHlpbmcgZmllbGQgbGlzdAorICBnZGJfdGVzdCAicHl0aG9uIHBy aW50IGxlbihnZGIucGFyc2VfYW5kX2V2YWwoJ3RzJykudHlwZS5maWVsZHMo KSkiICIyIiBcCisgICAgICAiJGxhbmcgdHlwZWRlZiBmaWVsZCBsaXN0Igor CiAgIGlmIHskbGFuZyA9PSAiYysrIn0gewogICAgICAgIyBUZXN0IHVzYWdl IHdpdGggYSBjbGFzcwogICAgICAgZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAi cHJpbnQgYyIgInByaW50IHZhbHVlIiAxCg== --20cf303b39c19b9efa04b165e7dd--