annotate mercurial/node.py @ 24879:b3142ea2a0d4 stable

parsers: avoid signed integer overflow in calculation of leaf-node index If v = -INT_MAX - 1, -v would exceed INT_MAX. I don't think this would cause problems such as issue4627, but we can't blame it as a compiler bug because signed integer overflow is undefined in C.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 29 Apr 2015 23:07:34 +0900
parents 25e572394f5c
children 1a5211f2f87f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8226
8b2cd04a6e97 put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents: 8225
diff changeset
1 # node.py - basic nodeid manipulation for mercurial
8b2cd04a6e97 put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents: 8225
diff changeset
2 #
8b2cd04a6e97 put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents: 8225
diff changeset
3 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
8b2cd04a6e97 put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents: 8225
diff changeset
4 #
8b2cd04a6e97 put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents: 8225
diff changeset
5 # This software may be used and distributed according to the terms of the
10263
25e572394f5c Update license to GPLv2+
Matt Mackall <mpm@selenic.com>
parents: 8226
diff changeset
6 # GNU General Public License version 2 or any later version.
1089
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
7
3877
abaee83ce0a6 Replace demandload with new demandimport
Matt Mackall <mpm@selenic.com>
parents: 3578
diff changeset
8 import binascii
1089
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
9
3578
3b4e00cba57a Define and use nullrev (revision of nullid) instead of -1.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2859
diff changeset
10 nullrev = -1
1089
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
11 nullid = "\0" * 20
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
12
4995
e45fc5d03798 manifest: speed up creation of the manifestdict
Matt Mackall <mpm@selenic.com>
parents: 3877
diff changeset
13 # This ugly style has a noticeable effect in manifest parsing
e45fc5d03798 manifest: speed up creation of the manifestdict
Matt Mackall <mpm@selenic.com>
parents: 3877
diff changeset
14 hex = binascii.hexlify
e45fc5d03798 manifest: speed up creation of the manifestdict
Matt Mackall <mpm@selenic.com>
parents: 3877
diff changeset
15 bin = binascii.unhexlify
1089
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
16
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
17 def short(node):
142b5d5ec9cc Break apart hg.py
mpm@selenic.com
parents:
diff changeset
18 return hex(node[:6])