Serhiy Storchaka
76a3e51a40
bpo-30243: Fixed the possibility of a crash in _json. ( #1420 )
...
It was possible to get a core dump by using uninitialized
_json objects. Now __new__ methods create initialized objects.
__init__ methods are removed.
2017-05-05 10:08:49 +03:00
Serhiy Storchaka
fff9a31a91
bpo-29865: Use PyXXX_GET_SIZE macros rather than Py_SIZE for concrete types. ( #748 )
2017-03-21 08:53:25 +02:00
Serhiy Storchaka
d1302c0154
Issue #28999 : Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever
...
possible but Coccinelle couldn't find opportunity.
2017-01-23 10:23:58 +02:00
Serhiy Storchaka
8cbc51ab3d
Py_SIZE() was misused for dict.
2017-01-13 08:38:15 +02:00
Serhiy Storchaka
a6758427fd
Py_SIZE() was misused for dict.
2017-01-13 08:37:05 +02:00
Serhiy Storchaka
3023ebb43f
Py_SIZE() was misused for dict.
2017-01-13 08:34:34 +02:00
Serhiy Storchaka
0f05512104
Fixed possible reference leaks in the _json module.
2017-01-03 11:20:15 +02:00
Serhiy Storchaka
8d979d576e
Fixed possible reference leaks in the _json module.
2017-01-03 11:19:48 +02:00
Serhiy Storchaka
21fe721345
Fixed possible reference leaks in the _json module.
2017-01-03 11:17:44 +02:00
Victor Stinner
4c38154a43
Don't parenthesis in _PyObject_CallMethodId() format
...
Issue #28915 : Without parenthesis, _PyObject_CallMethodId() avoids the creation
a temporary tuple, and so is more efficient.
2016-12-09 00:33:39 +01:00
Victor Stinner
de4ae3d486
Backed out changeset b9c9691c72c5
...
Issue #28858 : The change b9c9691c72c5 introduced a regression. It seems like
_PyObject_CallArg1() uses more stack memory than
PyObject_CallFunctionObjArgs().
2016-12-04 22:59:09 +01:00
Victor Stinner
27580c1fb5
Replace PyObject_CallFunctionObjArgs() with fastcall
...
* PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func)
* PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg)
PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires
extra work to "parse" C arguments to build a C array of PyObject*.
_PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate
memory on the C stack.
This change is part of the fastcall project. The change on listsort() is
related to the issue #23507 .
2016-12-01 14:43:22 +01:00
Serhiy Storchaka
96cdbe7bc8
Issue #26719 : More efficient formatting of ints and floats in json.
2016-04-10 14:43:04 +03:00
Serhiy Storchaka
e0805cf10e
Issue #26719 : More efficient formatting of ints and floats in json.
2016-04-10 14:41:19 +03:00
Serhiy Storchaka
ef1585eb9a
Issue #25923 : Added more const qualifiers to signatures of static and private functions.
2015-12-25 20:01:53 +02:00
Serhiy Storchaka
f002225f7e
Issue #24683 : Fixed crashes in _json functions called with arguments of
...
inappropriate type.
2015-07-26 09:02:23 +03:00
Serhiy Storchaka
83236f7a8b
Issue #24683 : Fixed crashes in _json functions called with arguments of
...
inappropriate type.
2015-07-26 09:01:22 +03:00
Benjamin Peterson
7b78d4364d
prevent integer overflow in escape_unicode ( closes #24522 )
2015-06-27 15:01:51 -05:00
Serhiy Storchaka
ac5569b1fa
Issue #24115 : Update uses of PyObject_IsTrue(), PyObject_Not(),
...
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:48:19 +03:00
Serhiy Storchaka
fa494fd883
Issue #24115 : Update uses of PyObject_IsTrue(), PyObject_Not(),
...
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:45:22 +03:00
Benjamin Peterson
88abdef02b
merge 3.4 ( #24094 )
2015-05-02 22:37:13 -04:00
Benjamin Peterson
122f4b1bda
merge 3.3 ( #24094 )
2015-05-02 22:36:26 -04:00
Benjamin Peterson
501182a47b
just sort the items tuple directly ( closes #24094 )
2015-05-02 22:28:04 -04:00
Victor Stinner
f024d263b4
Issue #23685 : Fix usage of PyMODINIT_FUNC in _json, _scproxy, nis, pyexpat
...
_codecs_cn, _codecs_hk, _codecs_iso2022, _codecs_jp, _codecs_kr and _codecs_tw
modules.
pyexpat.c doesn't need to redeclare PyMODINIT_FUNC, it's already declared in
Include/pyport.h.
2015-03-17 17:48:27 +01:00
Serhiy Storchaka
483405bcca
Issue #22883 : Got rid of outdated references to PyInt and PyString in comments.
2015-02-17 10:14:30 +02:00
Benjamin Peterson
71cf91cc09
merge 3.4 ( #23369 )
2015-02-01 18:00:19 -05:00
Benjamin Peterson
3675cd9db1
merge 3.3 ( #23369 )
2015-02-01 17:59:49 -05:00
Benjamin Peterson
e3bfe19358
fix possible overflow in encode_basestring_ascii ( closes #23369 )
2015-02-01 17:53:53 -05:00
Serhiy Storchaka
47efb4a5dc
Issue #19361 : JSON decoder now raises JSONDecodeError instead of ValueError.
2015-01-26 13:16:30 +02:00
Antoine Pitrou
dc3eaa80d4
Issue #23206 : Make ``json.dumps(..., ensure_ascii=False)`` as fast as the default case of ``ensure_ascii=True``. Patch by Naoki Inada.
2015-01-11 16:41:01 +01:00
Victor Stinner
31a3ec313d
Issue #22338 : Fix a crash in the json module on memory allocation failure.
2014-09-10 23:31:42 +02:00
Benjamin Peterson
70d92a96ab
merge 3.3
2014-04-14 11:48:21 -04:00
Benjamin Peterson
9beee049b0
merge 3.2
2014-04-14 11:46:51 -04:00
Benjamin Peterson
6ef2b36afa
disallow a negative idx parameter
2014-04-14 11:45:21 -04:00
Benjamin Peterson
584f5cbf16
merge 3.3
2014-04-13 22:31:42 -04:00
Benjamin Peterson
156285c35f
merge 3.2
2014-04-13 22:28:16 -04:00
Benjamin Peterson
99b5afab74
in scan_once, prevent the reading of arbitrary memory when passed a negative index
...
Bug reported by Guido Vranken.
2014-04-13 22:10:38 -04:00
Serhiy Storchaka
687ff0ecdf
Issue #11489 : JSON decoder now accepts lone surrogates.
2013-11-26 21:27:11 +02:00
Serhiy Storchaka
c93329b3dd
Issue #11489 : JSON decoder now accepts lone surrogates.
2013-11-26 21:25:28 +02:00
Ethan Furman
a4998a7041
Close #18264 : int- and float-derived enums now converted to int or float.
2013-08-10 13:01:45 -07:00
Christian Heimes
75e923fcf2
Issue #16847 : Fixed improper use of _PyUnicode_CheckConsistency() in
...
non-pydebug builds. Several extension modules now compile cleanly when
assert()s are enabled in standard builds (-DDEBUG flag).
2013-01-03 09:22:41 +01:00
Christian Heimes
f402e922f3
Issue #16847 : Fixed improper use of _PyUnicode_CheckConsistency() in
...
non-pydebug builds. Several extension modules now compile cleanly when
assert()s are enabled in standard builds (-DDEBUG flag).
2013-01-03 09:21:55 +01:00
Ezio Melotti
37623ab5f1
#16009 : JSON error messages now provide more information. Patch by Serhiy Storchaka.
2013-01-03 08:44:15 +02:00
Antoine Pitrou
cbb028466b
Issue #16590 : remove obsolete compatibility code from the _json module.
...
Patch by Serhiy Storchaka.
2012-12-01 19:34:16 +01:00
Antoine Pitrou
53d36b6912
Issue #16228 : Fix a crash in the json module where a list changes size while it is being encoded.
...
Patch by Serhiy Storchaka.
2012-11-01 20:03:30 +01:00
Antoine Pitrou
5ebe65f8cb
Issue #16228 : Fix a crash in the json module where a list changes size while it is being encoded.
...
Patch by Serhiy Storchaka.
2012-11-01 19:59:21 +01:00
Antoine Pitrou
9f69e79c45
Issue #16228 : Fix a crash in the json module where a list changes size while it is being encoded.
...
Patch by Serhiy Storchaka.
2012-11-01 19:52:06 +01:00
Victor Stinner
76df43de30
Issue #16330 : Use surrogate-related macros
...
Patch written by Serhiy Storchaka.
2012-10-30 01:42:39 +01:00
Antoine Pitrou
802d669044
Issue #5067 : improve some json error messages.
...
Patch by Serhiy Storchaka.
2012-06-29 01:59:54 +02:00
Antoine Pitrou
2d24e94bbe
Issue #5067 : improve some json error messages.
...
Patch by Serhiy Storchaka.
2012-06-29 01:58:26 +02:00
Victor Stinner
8f825060f1
Check newly created consistency using _PyUnicode_CheckConsistency(str, 1)
...
* In debug mode, fill the string data with invalid characters
* Simplify also reference counting in PyCodec_BackslashReplaceErrors()
and PyCodec_XMLCharRefReplaceError()
2012-04-27 13:55:39 +02:00
Antoine Pitrou
d0acb411ef
Issue #14387 : Do not include accu.h from Python.h.
2012-03-22 14:42:18 +01:00
Victor Stinner
f5cff56a1b
Issue #13088 : Add shared Py_hexdigits constant to format a number into base 16
2011-10-14 02:13:11 +02:00
Victor Stinner
d9c0631d77
Strip trailing spaces in _json.c
2011-10-11 21:56:19 +02:00
Victor Stinner
c4f281eba3
Fix misuse of PyUnicode_GET_SIZE, use PyUnicode_GET_LENGTH instead
2011-10-11 22:11:42 +02:00
Antoine Pitrou
699cd9f7f1
Remove unused variable
2011-10-11 04:06:47 +02:00
Martin v. Löwis
1ee1b6fe0d
Use identifier API for PyObject_GetAttrString.
2011-10-10 18:11:30 +02:00
Martin v. Löwis
c47adb04b3
Change PyUnicode_KIND to 1,2,4. Drop _KIND_SIZE and _CHARACTER_SIZE.
2011-10-07 20:55:35 +02:00
Antoine Pitrou
90c30e87be
Remove now duplicate code in _json.c; instead, reuse the new private lib
2011-10-06 19:09:51 +02:00
Martin v. Löwis
d63a3b8beb
Implement PEP 393.
2011-09-28 07:41:54 +02:00
Antoine Pitrou
18bb330203
Fix compilation under Windows
2011-08-20 03:19:34 +02:00
Antoine Pitrou
df7fc9dda7
Issue #12778 : Reduce memory consumption when JSON-encoding a large container of many small objects.
2011-08-19 18:03:14 +02:00
Ezio Melotti
f8d6fd605d
#12051 : merge with 3.2.
2011-05-11 01:23:41 +03:00
Ezio Melotti
f188bc5d46
#12051 : merge with 3.1.
2011-05-11 01:10:27 +03:00
Ezio Melotti
136726537f
#12051 : Fix segfault in json.dumps() while encoding highly-nested objects using the C accelerations.
2011-05-11 01:02:56 +03:00
Ezio Melotti
9c18778695
#12017 : merge with 3.2.
2011-05-07 18:29:14 +03:00
Ezio Melotti
06383ee090
#12017 : merge with 3.1.
2011-05-07 18:15:34 +03:00
Ezio Melotti
362b95102f
#12017 : Fix segfault in json.loads() while decoding highly-nested objects using the C accelerations.
2011-05-07 17:58:09 +03:00
Antoine Pitrou
f645451d78
Issue #11856 : Speed up parsing of JSON numbers.
2011-04-25 19:16:06 +02:00
Brett Cannon
b94767ff44
Issue #8914 : fix various warnings from the Clang static analyzer v254.
2011-02-22 20:15:44 +00:00
Antoine Pitrou
2397dd58b7
Issue #10314 : improve performance of JSON encoding with sort_keys=True
2010-11-04 16:51:32 +00:00
Antoine Pitrou
ae136da881
Merged revisions 85342 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r85342 | antoine.pitrou | 2010-10-09 17:24:28 +0200 (sam., 09 oct. 2010) | 4 lines
Issue #10055 : Make json C89-compliant in UCS4 mode.
........
2010-10-09 15:26:41 +00:00
Antoine Pitrou
5b0e9e84e9
Issue #10055 : Make json C89-compliant in UCS4 mode.
2010-10-09 15:24:28 +00:00
Georg Brandl
4009c9edfc
Merged revisions 82805-82806,83523-83527,83536,83538,83542,83546-83548,83550-83555,83558,83560 via svnmerge from
...
svn+ssh://svn.python.org/python/branches/py3k
........
r82805 | georg.brandl | 2010-07-11 11:42:10 +0200 (So, 11 Jul 2010) | 1 line
#7935 : cross-reference to ast.literal_eval() from eval() docs.
........
r82806 | georg.brandl | 2010-07-11 12:22:44 +0200 (So, 11 Jul 2010) | 1 line
#9223 : link to Command class reference, and move Command interface docs nearer to class docs.
........
r83523 | georg.brandl | 2010-08-02 14:06:18 +0200 (Mo, 02 Aug 2010) | 1 line
#9209 and #7781 : fix two crashes in pstats interactive browser.
........
r83524 | georg.brandl | 2010-08-02 14:20:23 +0200 (Mo, 02 Aug 2010) | 1 line
#9428 : fix running scripts from profile/cProfile with their own name and the right namespace. Same fix as for trace.py in #1690103 .
........
r83525 | georg.brandl | 2010-08-02 14:36:24 +0200 (Mo, 02 Aug 2010) | 1 line
Get rid of spurious "threading" entries in trace output.
........
r83526 | georg.brandl | 2010-08-02 14:40:22 +0200 (Mo, 02 Aug 2010) | 1 line
Fix softspace relic.
........
r83527 | georg.brandl | 2010-08-02 14:48:46 +0200 (Mo, 02 Aug 2010) | 1 line
#3821 : beginnings of a trace.py unittest.
........
r83536 | georg.brandl | 2010-08-02 19:49:25 +0200 (Mo, 02 Aug 2010) | 1 line
#8578 : mention danger of not incref'ing weak referenced object.
........
r83538 | georg.brandl | 2010-08-02 20:10:13 +0200 (Mo, 02 Aug 2010) | 1 line
#6928 : fix class docs w.r.t. new metaclasses.
........
r83542 | georg.brandl | 2010-08-02 20:56:54 +0200 (Mo, 02 Aug 2010) | 1 line
Move test_SimpleHTTPServer into test_httpservers.
........
r83546 | georg.brandl | 2010-08-02 21:16:34 +0200 (Mo, 02 Aug 2010) | 1 line
#7973 : Fix distutils options spelling.
........
r83547 | georg.brandl | 2010-08-02 21:19:26 +0200 (Mo, 02 Aug 2010) | 1 line
#7386 : add example that shows that trailing path separators are stripped.
........
r83548 | georg.brandl | 2010-08-02 21:23:34 +0200 (Mo, 02 Aug 2010) | 1 line
#8172 : how does one use a property?
........
r83550 | georg.brandl | 2010-08-02 21:32:43 +0200 (Mo, 02 Aug 2010) | 1 line
#9451 : strengthen warning about __*__ special name usage.
........
r83551 | georg.brandl | 2010-08-02 21:35:06 +0200 (Mo, 02 Aug 2010) | 1 line
Remove XXX comment that was displayed.
........
r83552 | georg.brandl | 2010-08-02 21:36:36 +0200 (Mo, 02 Aug 2010) | 1 line
#9438 : clarify that constant names also cannot be assigned as attributes.
........
r83553 | georg.brandl | 2010-08-02 21:39:17 +0200 (Mo, 02 Aug 2010) | 1 line
Remove redundant information.
........
r83554 | georg.brandl | 2010-08-02 21:43:05 +0200 (Mo, 02 Aug 2010) | 1 line
#7280 : note about nasmw.exe.
........
r83555 | georg.brandl | 2010-08-02 21:44:48 +0200 (Mo, 02 Aug 2010) | 1 line
#8861 : remove unused variable.
........
r83558 | georg.brandl | 2010-08-02 22:05:19 +0200 (Mo, 02 Aug 2010) | 1 line
#8648 : document UTF-7 codec functions.
........
r83560 | georg.brandl | 2010-08-02 22:16:18 +0200 (Mo, 02 Aug 2010) | 1 line
#9087 : update json docstrings -- unicode and long do not exist anymore.
........
2010-10-06 08:26:09 +00:00
Antoine Pitrou
7d6e076f6d
Issue #7451 : Improve decoding performance of JSON objects, and reduce
...
the memory consumption of said decoded objects when they use the same
strings as keys.
2010-09-04 20:16:53 +00:00
Georg Brandl
c8284cfc57
#9087 : update json docstrings -- unicode and long do not exist anymore.
2010-08-02 20:16:18 +00:00
Doug Hellmann
76e57947a1
Merged revisions 83016 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r83016 | doug.hellmann | 2010-07-21 08:29:04 -0400 (Wed, 21 Jul 2010) | 1 line
Apply patch from Ray Allen for issue 9296
........
2010-07-21 12:35:38 +00:00
Doug Hellmann
1c524754f6
Apply patch from Ray Allen for issue 9296
2010-07-21 12:29:04 +00:00
Antoine Pitrou
7f14f0d8a0
Recorded merge of revisions 81032 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines
Recorded merge of revisions 81029 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
................
2010-05-09 16:14:21 +00:00
Antoine Pitrou
f95a1b3c53
Recorded merge of revisions 81029 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
2010-05-09 15:52:27 +00:00
Antoine Pitrou
4fad6bdde9
Merged revisions 76710 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r76710 | antoine.pitrou | 2009-12-08 16:57:31 +0100 (mar., 08 déc. 2009) | 10 lines
Merged revisions 76708 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r76708 | antoine.pitrou | 2009-12-08 16:40:51 +0100 (mar., 08 déc. 2009) | 4 lines
Issue #6986 : Fix crash in the JSON C accelerator when called with the
wrong parameter types. Patch by Victor Stinner.
........
................
2009-12-08 16:00:03 +00:00
Antoine Pitrou
781eba7972
Merged revisions 76708 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r76708 | antoine.pitrou | 2009-12-08 16:40:51 +0100 (mar., 08 déc. 2009) | 4 lines
Issue #6986 : Fix crash in the JSON C accelerator when called with the
wrong parameter types. Patch by Victor Stinner.
........
2009-12-08 15:57:31 +00:00
Raymond Hettinger
491a4cb8d9
Fix TODO: do the sort by just the key, not the key/value pair.
2009-05-27 11:19:02 +00:00
Raymond Hettinger
bcf6f92dc5
* Fix-up a TODO (support the sort_key option).
...
* Fix an error where True/False were being written-out
as title-cased strings when used a dictionary keys.
* Speed-up iteration over dicts by looping over items()
rather than keys() followed by value lookups.
* TODO: sort only by keys, not keys and values.
2009-05-27 09:58:34 +00:00
Raymond Hettinger
c8d952dfe4
Issue 6105: json encoder to respect iteration order of its inputs.
2009-05-27 06:50:31 +00:00
Georg Brandl
596820539f
Merged revisions 72314 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72314 | georg.brandl | 2009-05-05 09:48:12 +0200 (Di, 05 Mai 2009) | 1 line
#5932 : fix error return in _convertPyInt_AsSsize_t() conversion function.
........
2009-05-05 07:52:05 +00:00
Hirokazu Yamamoto
fecf5d143a
Fixed warning. (Should not use *const* as variable name)
2009-05-02 15:55:19 +00:00
Benjamin Peterson
c6b607d4a9
port simplejson upgrade from the trunk #4136
...
json also now works only with unicode strings
Patch by Antoine Pitrou; updated by me
2009-05-02 12:36:44 +00:00
Benjamin Peterson
8e8c2152fb
Merged revisions 66938,66942 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r66938 | benjamin.peterson | 2008-10-16 16:27:54 -0500 (Thu, 16 Oct 2008) | 1 line
fix possible ref leak
........
r66942 | benjamin.peterson | 2008-10-16 16:48:06 -0500 (Thu, 16 Oct 2008) | 1 line
fix more possible ref leaks in _json and use Py_CLEAR
........
2008-10-16 21:56:24 +00:00
Benjamin Peterson
a13d475901
merge r66932 and add a few py3k only checks
2008-10-16 21:17:24 +00:00
Antoine Pitrou
ee58fa484e
#3560 : cleanup C memoryview API
2008-08-19 18:22:14 +00:00
Martin v. Löwis
423be95dcf
Merged revisions 65654 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r65654 | martin.v.loewis | 2008-08-12 16:49:50 +0200 (Tue, 12 Aug 2008) | 6 lines
Issue #3139 : Make buffer-interface thread-safe wrt. PyArg_ParseTuple,
by denying s# to parse objects that have a releasebuffer procedure,
and introducing s*.
More module might need to get converted to use s*.
........
2008-08-13 15:53:07 +00:00
Benjamin Peterson
7af6eec6d0
Merged revisions 65147 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r65147 | bob.ippolito | 2008-07-19 16:59:50 -0500 (Sat, 19 Jul 2008) | 1 line
#3322 : bounds checking for _json.scanstring
........
2008-07-19 22:26:35 +00:00
Martin v. Löwis
1a21451b1d
Implement PEP 3121: new module initialization and finalization API.
2008-06-11 05:26:20 +00:00
Christian Heimes
72b710a596
Renamed PyString to PyBytes
2008-05-26 13:28:38 +00:00
Amaury Forgeot d'Arc
cb0cdce821
Move variable declaration to the top of the block,
...
to let _json.c compile with Microsoft compilers.
2008-05-08 20:56:43 +00:00
Christian Heimes
90540004d3
Merged revisions 62734,62736,62748,62769 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/trunk
........
r62734 | brett.cannon | 2008-05-05 22:21:38 +0200 (Mon, 05 May 2008) | 5 lines
Add the 'json' package. Code taken from simplejson 1.9 and contributed by Bob
Ippolito.
Closes issue #2750 .
........
r62736 | georg.brandl | 2008-05-05 22:53:39 +0200 (Mon, 05 May 2008) | 2 lines
Fix JSON module docs.
........
r62748 | benjamin.peterson | 2008-05-06 04:51:10 +0200 (Tue, 06 May 2008) | 2 lines
PEP 8 nits in json package
........
r62769 | christian.heimes | 2008-05-06 18:18:41 +0200 (Tue, 06 May 2008) | 2 lines
Intern static string
Use float constructors instead of magic code for float constants
........
2008-05-08 14:29:10 +00:00