提交 7f838b8a 编写于 作者: M mullan

Merge

......@@ -127,3 +127,8 @@ f097ca2434b1412b12ab4a5c2397ce271bf681e7 jdk7-b147
7989ee9fe673a87f4db3917fa6a005732a6a9b85 jdk8-b03
fc569517f3cf242f90ce3503b743eb5553938946 jdk8-b04
0b32369b83d81c226a2e79e730f3a8c0d2595e92 jdk8-b05
bdb870cc269ef8b221d17a217be89092400b59d2 jdk8-b06
19f0a3db863cc491affc78b48c4a81a6679b2433 jdk8-b07
1c023bcd0c5a01ac07bc7eea728aafbb0d8991e9 jdk8-b08
f1ec21b8142168ff40f3278d2f6b5fe4bd5f3b26 jdk8-b09
4788745572ef2bde34924ef34e7e4d55ba07e979 jdk8-b10
......@@ -78,7 +78,3 @@ endif # linux
#
include $(BUILDDIR)/common/Library.gmk
#
# JVMDI implementation lives in the VM.
#
OTHER_LDLIBS = $(JVMLIB)
......@@ -220,14 +220,30 @@ JDK_LOCALES = ja zh_CN
JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh
#
# All libraries except libjava and libjvm itself link against libjvm and
# libjava, the latter for its exported common utilities. libjava only links
# against libjvm. Programs' makefiles take their own responsibility for
# For now, most libraries except libjava and libjvm itself link against libjvm
# and libjava, the latter for its exported common utilities. libjava only
# links against libjvm. Programs' makefiles take their own responsibility for
# adding other libs.
#
# The makefiles for these packages do not link against libjvm and libjava.
# This list will eventually go away and each Programs' makefiles
# will have to explicitly declare that they want to link to libjava/libjvm
#
NO_JAVALIB_PKGS = \
sun.security.mscapi \
sun.security.krb5 \
sun.security.pkcs11 \
sun.security.jgss \
sun.security.jgss.wrapper \
sun.security.ec \
sun.security.smartcardio \
com.sun.security.auth.module
ifdef PACKAGE
# put JAVALIB first, but do not lose any platform specific values....
LDLIBS_COMMON = $(JAVALIB)
ifeq (,$(findstring $(PACKAGE),$(NO_JAVALIB_PKGS)))
LDLIBS_COMMON = $(JAVALIB)
endif
endif # PACKAGE
#
......
......@@ -165,7 +165,7 @@ $(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
$(LINK) -dll -out:$(OBJDIR)/$(@F) \
-map:$(OBJDIR)/$(LIBRARY).map \
$(LFLAGS) @$(OBJDIR)/$(LIBRARY).lcf \
$(OTHER_LCF) $(JAVALIB) $(LDLIBS)
$(OTHER_LCF) $(LDLIBS)
$(CP) $(OBJDIR)/$(@F) $@
@$(call binary_file_verification,$@)
$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
......
......@@ -90,7 +90,6 @@ SUNWprivate_1.1 {
Java_java_io_FileSystem_getFileSystem;
Java_java_io_ObjectInputStream_bytesToDoubles;
Java_java_io_ObjectInputStream_bytesToFloats;
Java_java_io_ObjectInputStream_latestUserDefinedLoader;
Java_java_io_ObjectOutputStream_doublesToBytes;
Java_java_io_ObjectOutputStream_floatsToBytes;
Java_java_io_ObjectStreamClass_hasStaticInitializer;
......@@ -275,6 +274,7 @@ SUNWprivate_1.1 {
Java_sun_misc_Version_getJvmVersionInfo;
Java_sun_misc_Version_getJvmSpecialVersion;
Java_sun_misc_VM_getThreadStateValues;
Java_sun_misc_VM_latestUserDefinedLoader;
Java_sun_misc_VM_initialize;
Java_sun_misc_VMSupport_initAgentProperties;
......
......@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any
# questions.
#
tzdata2011j
tzdata2011l
......@@ -2216,7 +2216,47 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
# http://www.timeanddate.com/news/time/westbank-gaza-end-dst-2010.html
# </a>
# From Steffen Thorsen (2011-08-26):
# Gaza and the West Bank did go back to standard time in the beginning of
# August, and will now enter daylight saving time again on 2011-08-30
# 00:00 (so two periods of DST in 2011). The pause was because of
# Ramadan.
#
# <a href="http://www.maannews.net/eng/ViewDetails.aspx?ID=416217">
# http://www.maannews.net/eng/ViewDetails.aspx?ID=416217
# </a>
# Additional info:
# <a href="http://www.timeanddate.com/news/time/palestine-dst-2011.html">
# http://www.timeanddate.com/news/time/palestine-dst-2011.html
# </a>
# From Alexander Krivenyshev (2011-08-27):
# According to the article in The Jerusalem Post:
# "...Earlier this month, the Palestinian government in the West Bank decided to
# move to standard time for 30 days, during Ramadan. The Palestinians in the
# Gaza Strip accepted the change and also moved their clocks one hour back.
# The Hamas government said on Saturday that it won't observe summertime after
# the Muslim feast of Id al-Fitr, which begins on Tuesday..."
# ...
# <a href="http://www.jpost.com/MiddleEast/Article.aspx?id=235650">
# http://www.jpost.com/MiddleEast/Article.aspx?id=235650
# </a>
# or
# <a href="http://www.worldtimezone.com/dst_news/dst_news_gazastrip05.html">
# http://www.worldtimezone.com/dst_news/dst_news_gazastrip05.html
# </a>
# The rules for Egypt are stolen from the `africa' file.
# From Steffen Thorsen (2011-09-30):
# West Bank did end Daylight Saving Time this morning/midnight (2011-09-30
# 00:00).
# So West Bank and Gaza now have the same time again.
#
# Many sources, including:
# <a href="http://www.maannews.net/eng/ViewDetails.aspx?ID=424808">
# http://www.maannews.net/eng/ViewDetails.aspx?ID=424808
# </a>
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
......@@ -2232,19 +2272,37 @@ Rule Palestine 2005 only - Oct 4 2:00 0 -
Rule Palestine 2006 2008 - Apr 1 0:00 1:00 S
Rule Palestine 2006 only - Sep 22 0:00 0 -
Rule Palestine 2007 only - Sep Thu>=8 2:00 0 -
Rule Palestine 2008 only - Aug lastFri 2:00 0 -
Rule Palestine 2008 only - Aug lastFri 0:00 0 -
Rule Palestine 2009 only - Mar lastFri 0:00 1:00 S
Rule Palestine 2010 max - Mar lastSat 0:01 1:00 S
Rule Palestine 2009 max - Sep Fri>=1 2:00 0 -
Rule Palestine 2009 only - Sep Fri>=1 2:00 0 -
Rule Palestine 2010 only - Mar lastSat 0:01 1:00 S
Rule Palestine 2010 only - Aug 11 0:00 0 -
# From Arthur David Olson (2011-09-20):
# 2011 transitions per http://www.timeanddate.com as of 2011-09-20.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Gaza 2:17:52 - LMT 1900 Oct
2:00 Zion EET 1948 May 15
2:00 EgyptAsia EE%sT 1967 Jun 5
2:00 Zion I%sT 1996
2:00 Jordan EE%sT 1999
2:00 Palestine EE%sT
2:00 Palestine EE%sT 2011 Apr 2 12:01
2:00 1:00 EEST 2011 Aug 1
2:00 - EET
Zone Asia/Hebron 2:20:23 - LMT 1900 Oct
2:00 Zion EET 1948 May 15
2:00 EgyptAsia EE%sT 1967 Jun 5
2:00 Zion I%sT 1996
2:00 Jordan EE%sT 1999
2:00 Palestine EE%sT 2008 Aug
2:00 1:00 EEST 2008 Sep
2:00 Palestine EE%sT 2011 Apr 1 12:01
2:00 1:00 EEST 2011 Aug 1
2:00 - EET 2011 Aug 30
2:00 1:00 EEST 2011 Sep 30 3:00
2:00 - EET
# Paracel Is
# no information
......
......@@ -318,6 +318,18 @@ Zone Indian/Cocos 6:27:40 - LMT 1900
# http://www.worldtimezone.com/dst_news/dst_news_fiji04.html
# </a>
# From Steffen Thorsen (2011-10-03):
# Now the dates have been confirmed, and at least our start date
# assumption was correct (end date was one week wrong).
#
# <a href="http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=4966:daylight-saving-starts-in-fiji&catid=71:press-releases&Itemid=155">
# www.fiji.gov.fj/index.php?option=com_content&view=article&id=4966:daylight-saving-starts-in-fiji&catid=71:press-releases&Itemid=155
# </a>
# which says
# Members of the public are reminded to change their time to one hour in
# advance at 2am to 3am on October 23, 2011 and one hour back at 3am to
# 2am on February 26 next year.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S
Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
......@@ -325,6 +337,8 @@ Rule Fiji 2009 only - Nov 29 2:00 1:00 S
Rule Fiji 2010 only - Mar lastSun 3:00 0 -
Rule Fiji 2010 only - Oct 24 2:00 1:00 S
Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
Rule Fiji 2011 only - Oct 23 2:00 1:00 S
Rule Fiji 2012 only - Feb 26 3:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Fiji 11:53:40 - LMT 1915 Oct 26 # Suva
12:00 Fiji FJ%sT # Fiji Time
......
......@@ -583,9 +583,9 @@ Rule Russia 1985 1991 - Mar lastSun 2:00s 1:00 S
#
Rule Russia 1992 only - Mar lastSat 23:00 1:00 S
Rule Russia 1992 only - Sep lastSat 23:00 0 -
Rule Russia 1993 max - Mar lastSun 2:00s 1:00 S
Rule Russia 1993 2010 - Mar lastSun 2:00s 1:00 S
Rule Russia 1993 1995 - Sep lastSun 2:00s 0 -
Rule Russia 1996 max - Oct lastSun 2:00s 0 -
Rule Russia 1996 2010 - Oct lastSun 2:00s 0 -
# From Alexander Krivenyshev (2011-06-14):
# According to Kremlin press service, Russian President Dmitry Medvedev
......@@ -605,7 +605,6 @@ Rule Russia 1996 max - Oct lastSun 2:00s 0 -
# From Arthur David Olson (2011-06-15):
# Take "abolishing daylight saving time" to mean that time is now considered
# to be standard.
# At least for now, keep the "old" Russia rules for the benefit of Belarus.
# These are for backward compatibility with older versions.
......@@ -711,6 +710,23 @@ Zone Europe/Vienna 1:05:20 - LMT 1893 Apr
1:00 EU CE%sT
# Belarus
# From Yauhen Kharuzhy (2011-09-16):
# By latest Belarus government act Europe/Minsk timezone was changed to
# GMT+3 without DST (was GMT+2 with DST).
#
# Sources (Russian language):
# 1.
# <a href="http://www.belta.by/ru/all_news/society/V-Belarusi-otmenjaetsja-perexod-na-sezonnoe-vremja_i_572952.html">
# http://www.belta.by/ru/all_news/society/V-Belarusi-otmenjaetsja-perexod-na-sezonnoe-vremja_i_572952.html
# </a>
# 2.
# <a href="http://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/">
# http://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/
# </a>
# 3.
# <a href="http://news.tut.by/society/250578.html">
# http://news.tut.by/society/250578.html
# </a>
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Minsk 1:50:16 - LMT 1880
1:50 - MMT 1924 May 2 # Minsk Mean Time
......@@ -722,7 +738,8 @@ Zone Europe/Minsk 1:50:16 - LMT 1880
2:00 1:00 EEST 1991 Sep 29 2:00s
2:00 - EET 1992 Mar 29 0:00s
2:00 1:00 EEST 1992 Sep 27 0:00s
2:00 Russia EE%sT
2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - FET # Further-eastern European Time
# Belgium
#
......@@ -2056,7 +2073,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
2:00 Poland CE%sT 1946
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - KALT
3:00 - FET # Further-eastern European Time
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Respublika Adygeya, Arkhangel'skaya oblast',
......@@ -2211,7 +2228,7 @@ Zone Asia/Irkutsk 6:57:20 - LMT 1880
# [parts of] Respublika Sakha (Yakutiya), Chitinskaya oblast'.
# From Oscar van Vlijmen (2009-11-29):
# ...some regions of RUssia were merged with others since 2005...
# ...some regions of [Russia] were merged with others since 2005...
# Some names were changed, no big deal, except for one instance: a new name.
# YAK/YAKST: UTC+9 Zabajkal'skij kraj.
......@@ -2635,6 +2652,28 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
# of March at 3am the time is changing to 4am and each last Sunday of
# October the time at 4am is changing to 3am"
# From Alexander Krivenyshev (2011-09-20):
# On September 20, 2011 the deputies of the Verkhovna Rada agreed to
# abolish the transfer clock to winter time.
#
# Bill number 8330 of MP from the Party of Regions Oleg Nadoshi got
# approval from 266 deputies.
#
# Ukraine abolishes transter back to the winter time (in Russian)
# <a href="http://news.mail.ru/politics/6861560/">
# http://news.mail.ru/politics/6861560/
# </a>
#
# The Ukrainians will no longer change the clock (in Russian)
# <a href="http://www.segodnya.ua/news/14290482.html">
# http://www.segodnya.ua/news/14290482.html
# </a>
#
# Deputies cancelled the winter time (in Russian)
# <a href="http://www.pravda.com.ua/rus/news/2011/09/20/6600616/">
# http://www.pravda.com.ua/rus/news/2011/09/20/6600616/
# </a>
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Most of Ukraine since 1970 has been like Kiev.
# "Kyiv" is the transliteration of the Ukrainian name, but
......@@ -2648,7 +2687,8 @@ Zone Europe/Kiev 2:02:04 - LMT 1880
3:00 - MSK 1990 Jul 1 2:00
2:00 - EET 1992
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT
2:00 EU EE%sT 2011 Mar lastSun 1:00u
3:00 - FET # Further-eastern European Time
# Ruthenia used CET 1990/1991.
# "Uzhhorod" is the transliteration of the Ukrainian name, but
# "Uzhgorod" is more common in English.
......@@ -2662,7 +2702,8 @@ Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
1:00 - CET 1991 Mar 31 3:00
2:00 - EET 1992
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT
2:00 EU EE%sT 2011 Mar lastSun 1:00u
3:00 - FET # Further-eastern European Time
# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
# "Zaporizhia" is the transliteration of the Ukrainian name, but
# "Zaporozh'ye" is more common in English. Use the common English
......@@ -2675,7 +2716,8 @@ Zone Europe/Zaporozhye 2:20:40 - LMT 1880
1:00 C-Eur CE%sT 1943 Oct 25
3:00 Russia MSK/MSD 1991 Mar 31 2:00
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT
2:00 EU EE%sT 2011 Mar lastSun 1:00u
3:00 - FET # Further-eastern European Time
# Central Crimea used Moscow time 1994/1997.
Zone Europe/Simferopol 2:16:24 - LMT 1880
2:16 - SMT 1924 May 2 # Simferopol Mean T
......@@ -2700,7 +2742,8 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880
# Assume it happened in March by not changing the clocks.
3:00 Russia MSK/MSD 1997
3:00 - MSK 1997 Mar lastSun 1:00u
2:00 EU EE%sT
2:00 EU EE%sT 2011 Mar lastSun 1:00u
3:00 - FET # Further-eastern European Time
###############################################################################
......
......@@ -505,7 +505,7 @@ Zone America/Juneau 15:02:19 - LMT 1867 Oct 18
-8:00 US P%sT 1983 Oct 30 2:00
-9:00 US Y%sT 1983 Nov 30
-9:00 US AK%sT
Zone America/Sitka -14:58:47 - LMT 1867 Oct 18
Zone America/Sitka 14:58:47 - LMT 1867 Oct 18
-9:01:13 - LMT 1900 Aug 20 12:00
-8:00 - PST 1942
-8:00 US P%sT 1946
......@@ -1190,31 +1190,21 @@ Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S
# INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches
# at 00:01 local time. For now, assume it started in 1987.
# From Michael Pelley (2011-08-05):
# The Government of Newfoundland and Labrador has pending changes to
# modify the hour for daylight savings time to come into effect in
# November 2011. This modification would change the time from 12:01AM to
# 2:00AM on the dates of the switches of Daylight Savings Time to/from
# Standard Time.
#
# As a matter of reference, in Canada provinces have the authority of
# setting time zone information. The legislation has passed our
# legislative body (The House of Assembly) and is awaiting the
# proclamation to come into effect. You may find this information at:
# <a href="http://www.assembly.nl.ca/legislation/sr/lists/Proclamation.htm">
# http://www.assembly.nl.ca/legislation/sr/lists/Proclamation.htm
# </a>
# and
# search within that web page for Standard Time (Amendment) Act. The Act
# may be found at:
# <a href="http://www.assembly.nl.ca/business/bills/Bill1106.htm">
# http://www.assembly.nl.ca/business/bills/Bill1106.htm
# From Michael Pelley (2011-09-12):
# We received today, Monday, September 12, 2011, notification that the
# changes to the Newfoundland Standard Time Act have been proclaimed.
# The change in the Act stipulates that the change from Daylight Savings
# Time to Standard Time and from Standard Time to Daylight Savings Time
# now occurs at 2:00AM.
# ...
# <a href="http://www.assembly.nl.ca/legislation/sr/annualstatutes/2011/1106.chp.htm">
# http://www.assembly.nl.ca/legislation/sr/annualstatutes/2011/1106.chp.htm
# </a>
# ...
# MICHAEL PELLEY | Manager of Enterprise Architecture - Solution Delivery
# Office of the Chief Information Officer Executive Council Government of
# Newfoundland & Labrador P.O. Box 8700, 40 Higgins Line, St. John's NL
# A1B 4J6
# MICHAEL PELLEY | Manager of Enterprise Architecture - Solution Delivery
# Office of the Chief Information Officer
# Executive Council
# Government of Newfoundland & Labrador
Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D
Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
......
......@@ -819,6 +819,26 @@ Zone America/La_Paz -4:32:36 - LMT 1890
# <a href="http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html">
# http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html
# </a>
#
# From Alexander Krivenyshev (2011-10-04):
# State Bahia will return to Daylight savings time this year after 8 years off.
# The announcement was made by Governor Jaques Wagner in an interview to a
# television station in Salvador.
# In Portuguese:
# <a href="http://g1.globo.com/bahia/noticia/2011/10/governador-jaques-wagner-confirma-horario-de-verao-na-bahia.html">
# http://g1.globo.com/bahia/noticia/2011/10/governador-jaques-wagner-confirma-horario-de-verao-na-bahia.html
# </a> and
# <a href="http://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html">
# http://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html
# </a>
# From Guilherme Bernardes Rodrigues (2011-10-07):
# There is news in the media, however there is still no decree about it.
# I just send a e-mail to Zulmira Brandão at
# <a href="http://pcdsh01.on.br/">http://pcdsh01.on.br/</a> the
# oficial agency about time in Brazil, and she confirmed that the old rule is
# still in force.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Decree <a href="http://pcdsh01.on.br/HV20466.htm">20,466</a> (1931-10-01)
......@@ -1057,6 +1077,9 @@ Zone America/Maceio -2:22:52 - LMT 1914
Zone America/Bahia -2:34:04 - LMT 1914
-3:00 Brazil BR%sT 2003 Sep 24
-3:00 - BRT
# as noted above, not yet in operation.
# -3:00 - BRT 2011 Oct 16
# -3:00 Brazil BR%sT
#
# Goias (GO), Distrito Federal (DF), Minas Gerais (MG),
# Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR),
......
......@@ -341,7 +341,8 @@ PL +5215+02100 Europe/Warsaw
PM +4703-05620 America/Miquelon
PN -2504-13005 Pacific/Pitcairn
PR +182806-0660622 America/Puerto_Rico
PS +3130+03428 Asia/Gaza
PS +3130+03428 Asia/Gaza Gaza Strip
PS +313200+0350542 Asia/Hebron West Bank
PT +3843-00908 Europe/Lisbon mainland
PT +3238-01654 Atlantic/Madeira Madeira Islands
PT +3744-02540 Atlantic/Azores Azores
......
......@@ -28,6 +28,7 @@ PACKAGE = sun.net
PRODUCT = sun
SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
SUBDIRS_MAKEFLAGS += JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation,-path
include $(BUILDDIR)/common/Defs.gmk
SUBDIRS = others spi
......
......@@ -30,15 +30,8 @@
BUILDDIR = ../../..
PACKAGE = sun.rmi
PRODUCT = sun
LIBRARY = rmi
include $(BUILDDIR)/common/Defs.gmk
#
# Add use of a mapfile
#
FILES_m = mapfile-vers
include $(BUILDDIR)/common/Mapfile-vers.gmk
#
# Java files to compile.
#
......@@ -51,32 +44,10 @@ AUTO_FILES_JAVA_DIRS = \
sun/rmi/transport \
com/sun/rmi
#
# Native files to compile.
#
FILES_c = \
sun/rmi/server/MarshalInputStream.c
#
# Add ambient vpath to pick up files not part of sun.rmi package
#
vpath %.c $(SHARE_SRC)/native/sun/rmi/server
#
# Exported files that require generated .h
#
FILES_export = \
sun/rmi/server/MarshalInputStream.java
#
# Link to JVM for JVM_LatestUserDefinedLoader
#
OTHER_LDLIBS = $(JVMLIB)
#
# Rules
#
include $(BUILDDIR)/common/Library.gmk
include $(BUILDDIR)/common/Rules.gmk
#
# Full package names of implementations requiring stubs
......
#
# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# Define library interface.
SUNWprivate_1.1 {
global:
Java_sun_rmi_server_MarshalInputStream_latestUserDefinedLoader;
local:
*;
};
......@@ -192,10 +192,8 @@ ifeq ($(NATIVE_ECC_AVAILABLE), true)
#
# Libraries to link
#
ifeq ($(PLATFORM), windows)
OTHER_LDLIBS += $(JVMLIB)
else
OTHER_LDLIBS = -ldl $(JVMLIB) $(LIBCXX)
ifneq ($(PLATFORM), windows)
OTHER_LDLIBS = $(LIBCXX)
endif
include $(BUILDDIR)/common/Mapfile-vers.gmk
......
......@@ -72,5 +72,6 @@ include $(BUILDDIR)/common/Library.gmk
# Libraries to link
#
ifneq ($(PLATFORM), windows)
OTHER_LDLIBS = -ldl $(JVMLIB)
OTHER_LDLIBS = -ldl
endif
......@@ -69,15 +69,6 @@ else
include $(BUILDDIR)/common/Classes.gmk
endif # PLATFORM
#
# Libraries to link
#
ifeq ($(PLATFORM), windows)
OTHER_LDLIBS = $(JVMLIB)
else
OTHER_LDLIBS = -ldl $(JVMLIB)
endif
build:
ifeq ($(PLATFORM),windows)
$(call make-launcher, kinit, sun.security.krb5.internal.tools.Kinit, , )
......
......@@ -159,7 +159,7 @@ include $(BUILDDIR)/common/Library.gmk
# Libraries to link
#
ifeq ($(PLATFORM), windows)
OTHER_LDLIBS += $(JVMLIB) Crypt32.Lib
OTHER_LDLIBS += Crypt32.Lib
endif
#
......
......@@ -159,10 +159,8 @@ include $(BUILDDIR)/common/Library.gmk
#
# Libraries to link
#
ifeq ($(PLATFORM), windows)
OTHER_LDLIBS = $(JVMLIB)
else
OTHER_LDLIBS = -ldl $(JVMLIB)
ifneq ($(PLATFORM), windows)
OTHER_LDLIBS = -ldl
endif
# Other config files
......
......@@ -73,8 +73,8 @@ include $(BUILDDIR)/common/Library.gmk
# Libraries to link
#
ifeq ($(PLATFORM), windows)
OTHER_LDLIBS = $(JVMLIB) winscard.lib
OTHER_LDLIBS = winscard.lib
else
OTHER_LDLIBS = -ldl $(JVMLIB)
OTHER_LDLIBS = -ldl
OTHER_CFLAGS = -D__sun_jdk
endif
......@@ -91,6 +91,9 @@ FileChooser.updateButtonToolTipText=Update directory listing
FileChooser.helpButtonToolTipText=FileChooser help
FileChooser.directoryOpenButtonToolTipText=Open selected directory
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Preview
ColorChooser.okText=OK
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Verzeichnisliste aktualisieren
FileChooser.helpButtonToolTipText=FileChooser-Hilfe
FileChooser.directoryOpenButtonToolTipText=Ausgew\u00E4hltes Verzeichnis \u00F6ffnen
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Vorschau
ColorChooser.okText=OK
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Actualizar lista de directorios
FileChooser.helpButtonToolTipText=Ayuda del Selector de Archivos
FileChooser.directoryOpenButtonToolTipText=Abrir directorio seleccionado
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Presentaci\u00F3n Preliminar
ColorChooser.okText=Aceptar
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Met \u00E0 jour la liste des r\u00E9pertoire
FileChooser.helpButtonToolTipText=Aide du s\u00E9lecteur de fichiers
FileChooser.directoryOpenButtonToolTipText=Ouvre le r\u00E9pertoire s\u00E9lectionn\u00E9
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Aper\u00E7u
ColorChooser.okText=OK
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Aggiorna la lista directory
FileChooser.helpButtonToolTipText=Guida FileChooser
FileChooser.directoryOpenButtonToolTipText=Apre la directory selezionata
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Anteprima
ColorChooser.okText=OK
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u
FileChooser.helpButtonToolTipText=FileChooser\u306E\u30D8\u30EB\u30D7\u3067\u3059
FileChooser.directoryOpenButtonToolTipText=\u9078\u629E\u3057\u305F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u958B\u304D\u307E\u3059
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=\u30D7\u30EC\u30D3\u30E5\u30FC
ColorChooser.okText=OK
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D \uAC31
FileChooser.helpButtonToolTipText=FileChooser \uB3C4\uC6C0\uB9D0
FileChooser.directoryOpenButtonToolTipText=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=\uBBF8\uB9AC\uBCF4\uAE30
ColorChooser.okText=\uD655\uC778
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Atualizar lista de diret\u00F3rios
FileChooser.helpButtonToolTipText=Ajuda do FileChooser
FileChooser.directoryOpenButtonToolTipText=Abrir diret\u00F3rio selecionado
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Visualizar
ColorChooser.okText=OK
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=Uppdatera kataloglistan
FileChooser.helpButtonToolTipText=Hj\u00E4lp - Filv\u00E4ljare
FileChooser.directoryOpenButtonToolTipText=\u00D6ppna vald katalog
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Granska
ColorChooser.okText=OK
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u5F55\u5217\u8868
FileChooser.helpButtonToolTipText=FileChooser \u5E2E\u52A9
FileChooser.directoryOpenButtonToolTipText=\u6253\u5F00\u9009\u62E9\u7684\u76EE\u5F55
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=\u9884\u89C8
ColorChooser.okText=\u786E\u5B9A
......
......@@ -90,6 +90,9 @@ FileChooser.updateButtonToolTipText=\u66F4\u65B0\u76EE\u9304\u6E05\u55AE
FileChooser.helpButtonToolTipText=\u300C\u6A94\u6848\u9078\u64C7\u5668\u300D\u8AAA\u660E
FileChooser.directoryOpenButtonToolTipText=\u958B\u555F\u9078\u53D6\u7684\u76EE\u9304
FileChooser.filesListAccessibleName=Files List
FileChooser.filesDetailsAccessibleName=Files Details
############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=\u9810\u89BD
ColorChooser.okText=\u78BA\u5B9A
......
......@@ -777,10 +777,6 @@ public class AWTKeyStroke implements Serializable {
*/
protected Object readResolve() throws java.io.ObjectStreamException {
synchronized (AWTKeyStroke.class) {
Class newClass = getClass();
if (!newClass.equals(ctor.getDeclaringClass())) {
registerSubclass(newClass);
}
return getCachedStroke(keyChar, keyCode, modifiers, onKeyRelease);
}
}
......
......@@ -34,8 +34,10 @@ import java.security.AccessController;
import sun.security.action.GetPropertyAction;
import sun.awt.AWTAutoShutdown;
import sun.awt.SunToolkit;
import sun.awt.AppContext;
import java.util.Vector;
import java.util.ArrayList;
import java.util.List;
import sun.util.logging.PlatformLogger;
import sun.awt.dnd.SunDragSourceContextPeer;
......@@ -66,11 +68,11 @@ class EventDispatchThread extends Thread {
private EventQueue theQueue;
private boolean doDispatch = true;
private boolean threadDeathCaught = false;
private volatile boolean shutdown = false;
private static final int ANY_EVENT = -1;
private Vector<EventFilter> eventFilters = new Vector<EventFilter>();
private ArrayList<EventFilter> eventFilters = new ArrayList<EventFilter>();
EventDispatchThread(ThreadGroup group, String name, EventQueue queue) {
super(group, name);
......@@ -84,6 +86,11 @@ class EventDispatchThread extends Thread {
doDispatch = false;
}
public void interrupt() {
shutdown = true;
super.interrupt();
}
public void run() {
while (true) {
try {
......@@ -93,8 +100,7 @@ class EventDispatchThread extends Thread {
}
});
} finally {
EventQueue eq = getEventQueue();
if (eq.detachDispatchThread(this) || threadDeathCaught) {
if(getEventQueue().detachDispatchThread(this, shutdown)) {
break;
}
}
......@@ -124,10 +130,9 @@ class EventDispatchThread extends Thread {
void pumpEventsForFilter(int id, Conditional cond, EventFilter filter) {
addEventFilter(filter);
doDispatch = true;
while (doDispatch && cond.evaluate()) {
if (isInterrupted() || !pumpOneEventForFilters(id)) {
doDispatch = false;
}
shutdown |= isInterrupted();
while (doDispatch && !shutdown && cond.evaluate()) {
pumpOneEventForFilters(id);
}
removeEventFilter(filter);
}
......@@ -163,7 +168,7 @@ class EventDispatchThread extends Thread {
}
}
boolean pumpOneEventForFilters(int id) {
void pumpOneEventForFilters(int id) {
AWTEvent event = null;
boolean eventOK = false;
try {
......@@ -212,24 +217,18 @@ class EventDispatchThread extends Thread {
if (delegate != null) {
delegate.afterDispatch(event, handle);
}
return true;
}
catch (ThreadDeath death) {
threadDeathCaught = true;
return false;
shutdown = true;
throw death;
}
catch (InterruptedException interruptedException) {
return false; // AppContext.dispose() interrupts all
// Threads in the AppContext
shutdown = true; // AppContext.dispose() interrupts all
// Threads in the AppContext
}
catch (Throwable e) {
processException(e);
}
return true;
}
private void processException(Throwable e) {
......
......@@ -47,6 +47,7 @@ import sun.awt.AWTAccessor;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.atomic.AtomicInteger;
import java.security.AccessControlContext;
import java.security.ProtectionDomain;
......@@ -99,12 +100,7 @@ import sun.misc.JavaSecurityAccess;
* @since 1.1
*/
public class EventQueue {
// From Thread.java
private static int threadInitNumber;
private static synchronized int nextThreadNum() {
return threadInitNumber++;
}
private static final AtomicInteger threadInitNumber = new AtomicInteger(0);
private static final int LOW_PRIORITY = 0;
private static final int NORM_PRIORITY = 1;
......@@ -175,9 +171,9 @@ public class EventQueue {
* Non-zero if a thread is waiting in getNextEvent(int) for an event of
* a particular ID to be posted to the queue.
*/
private int waitForID;
private volatile int waitForID;
private final String name = "AWT-EventQueue-" + nextThreadNum();
private final String name = "AWT-EventQueue-" + threadInitNumber.getAndIncrement();
private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue");
......@@ -1030,7 +1026,7 @@ public class EventQueue {
}
}
final boolean detachDispatchThread(EventDispatchThread edt) {
final boolean detachDispatchThread(EventDispatchThread edt, boolean forceDetach) {
/*
* This synchronized block is to secure that the event dispatch
* thread won't die in the middle of posting a new event to the
......@@ -1049,7 +1045,7 @@ public class EventQueue {
* Fix for 4648733. Check both the associated java event
* queue and the PostEventQueue.
*/
if ((peekEvent() != null) || !SunToolkit.isPostEventQueueEmpty()) {
if (!forceDetach && (peekEvent() != null) || !SunToolkit.isPostEventQueueEmpty()) {
return false;
}
dispatchThread = null;
......
......@@ -2025,8 +2025,9 @@ public class ObjectInputStream
* This method should not be removed or its signature changed without
* corresponding modifications to the above class.
*/
// REMIND: change name to something more accurate?
private static native ClassLoader latestUserDefinedLoader();
private static ClassLoader latestUserDefinedLoader() {
return sun.misc.VM.latestUserDefinedLoader();
}
/**
* Default GetField implementation.
......
......@@ -53,7 +53,7 @@ class AdapterMethodHandle extends BoundMethodHandle {
// JVM might update VM-specific bits of conversion (ignore)
MethodHandleNatives.init(this, target, convArgPos(conv));
}
private AdapterMethodHandle(MethodHandle target, MethodType newType,
AdapterMethodHandle(MethodHandle target, MethodType newType,
long conv) {
this(target, newType, conv, null);
}
......@@ -423,7 +423,7 @@ class AdapterMethodHandle extends BoundMethodHandle {
insertStackMove(stackMove)
);
}
private static long makeConv(int convOp) {
static long makeConv(int convOp) {
assert(convOp == OP_RETYPE_ONLY || convOp == OP_RETYPE_RAW);
return ((long)-1 << 32) | (convOp << CONV_OP_SHIFT); // stackMove, src, dst all zero
}
......
/*
* Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -23,22 +23,28 @@
* questions.
*/
#include "jni.h"
#include "jvm.h"
#include "jni_util.h"
package java.lang.invoke;
#include "sun_rmi_server_MarshalInputStream.h"
import static java.lang.invoke.MethodHandleNatives.Constants.*;
/*
* Class: sun_rmi_server_MarshalInputStream
* Method: latestUserDefinedLoader
* Signature: ()Ljava/lang/ClassLoader;
/**
* This method handle is used to optionally provide a count of how
* many times it was invoked.
*
* Returns the first non-null class loader up the execution stack, or null
* if only code from the null class loader is on the stack.
* @author never
*/
JNIEXPORT jobject JNICALL
Java_sun_rmi_server_MarshalInputStream_latestUserDefinedLoader(JNIEnv *env, jclass cls)
{
return JVM_LatestUserDefinedLoader(env);
class CountingMethodHandle extends AdapterMethodHandle {
private int vmcount;
private CountingMethodHandle(MethodHandle target) {
super(target, target.type(), AdapterMethodHandle.makeConv(OP_RETYPE_ONLY));
}
/** Wrap the incoming MethodHandle in a CountingMethodHandle if they are enabled */
static MethodHandle wrap(MethodHandle mh) {
if (MethodHandleNatives.COUNT_GWT) {
return new CountingMethodHandle(mh);
}
return mh;
}
}
......@@ -749,8 +749,8 @@ import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP;
assert(target.type().equals(fallback.type()));
MethodHandle tailcall = MethodHandles.exactInvoker(target.type());
MethodHandle select = selectAlternative();
select = bindArgument(select, 2, fallback);
select = bindArgument(select, 1, target);
select = bindArgument(select, 2, CountingMethodHandle.wrap(fallback));
select = bindArgument(select, 1, CountingMethodHandle.wrap(target));
// select(z: boolean) => (z ? target : fallback)
MethodHandle filter = filterArgument(tailcall, 0, select);
assert(filter.type().parameterType(0) == boolean.class);
......
......@@ -120,6 +120,8 @@ class MethodHandleNatives {
static final int OP_ROT_ARGS_DOWN_LIMIT_BIAS;
static final boolean COUNT_GWT;
private static native void registerNatives();
static {
registerNatives();
......@@ -131,6 +133,7 @@ class MethodHandleNatives {
k = getConstant(Constants.GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS);
OP_ROT_ARGS_DOWN_LIMIT_BIAS = (k != 0) ? (byte)k : -1;
HAVE_RICOCHET_FRAMES = (CONV_OP_IMPLEMENTED_MASK & (1<<OP_COLLECT_ARGS)) != 0;
COUNT_GWT = getConstant(Constants.GC_COUNT_GWT) != 0;
//sun.reflect.Reflection.registerMethodsToFilter(MethodHandleImpl.class, "init");
}
......@@ -143,7 +146,8 @@ class MethodHandleNatives {
GC_JVM_PUSH_LIMIT = 0,
GC_JVM_STACK_MOVE_UNIT = 1,
GC_CONV_OP_IMPLEMENTED_MASK = 2,
GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS = 3;
GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS = 3,
GC_COUNT_GWT = 4;
static final int
ETF_HANDLE_OR_METHOD_NAME = 0, // all available data (immediate MH or method)
ETF_DIRECT_HANDLE = 1, // ultimate method handle (will be a DMH, may be self)
......
......@@ -876,10 +876,12 @@ class InetAddress implements java.io.Serializable {
nameService = java.security.AccessController.doPrivileged(
new java.security.PrivilegedExceptionAction<NameService>() {
public NameService run() {
Iterator itr = Service.providers(NameServiceDescriptor.class);
// sun.misc.Service.providers returns a raw Iterator
@SuppressWarnings("unchecked")
Iterator<NameServiceDescriptor> itr =
Service.providers(NameServiceDescriptor.class);
while (itr.hasNext()) {
NameServiceDescriptor nsd
= (NameServiceDescriptor)itr.next();
NameServiceDescriptor nsd = itr.next();
if (providerName.
equalsIgnoreCase(nsd.getType()+","
+nsd.getProviderName())) {
......
......@@ -267,10 +267,9 @@ class ServerSocket implements java.io.Closeable {
AccessController.doPrivileged(
new PrivilegedExceptionAction<Void>() {
public Void run() throws NoSuchMethodException {
Class[] cl = new Class[2];
cl[0] = SocketAddress.class;
cl[1] = Integer.TYPE;
impl.getClass().getDeclaredMethod("connect", cl);
impl.getClass().getDeclaredMethod("connect",
SocketAddress.class,
int.class);
return null;
}
});
......
......@@ -435,7 +435,7 @@ public abstract class Charset
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
try {
Class epc
Class<?> epc
= Class.forName("sun.nio.cs.ext.ExtendedCharsets");
extendedProvider = (CharsetProvider)epc.newInstance();
} catch (ClassNotFoundException x) {
......
......@@ -814,7 +814,7 @@ public final class Security {
public Void run() {
try {
/* Get the class via the bootstrap class loader. */
Class cl = Class.forName(
Class<?> cl = Class.forName(
"java.lang.SecurityManager", false, null);
Field f = null;
boolean accessible = false;
......
......@@ -443,7 +443,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#word">word breaks</a>
* for <a href="BreakIterator.html#word">word breaks</a>
* for the {@linkplain Locale#getDefault() default locale}.
* @return A break iterator for word breaks
*/
......@@ -454,7 +454,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#word">word breaks</a>
* for <a href="BreakIterator.html#word">word breaks</a>
* for the given locale.
* @param locale the desired locale
* @return A break iterator for word breaks
......@@ -470,7 +470,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#line">line breaks</a>
* for <a href="BreakIterator.html#line">line breaks</a>
* for the {@linkplain Locale#getDefault() default locale}.
* @return A break iterator for line breaks
*/
......@@ -481,7 +481,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#line">line breaks</a>
* for <a href="BreakIterator.html#line">line breaks</a>
* for the given locale.
* @param locale the desired locale
* @return A break iterator for line breaks
......@@ -497,7 +497,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#character">character breaks</a>
* for <a href="BreakIterator.html#character">character breaks</a>
* for the {@linkplain Locale#getDefault() default locale}.
* @return A break iterator for character breaks
*/
......@@ -508,7 +508,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#character">character breaks</a>
* for <a href="BreakIterator.html#character">character breaks</a>
* for the given locale.
* @param locale the desired locale
* @return A break iterator for character breaks
......@@ -524,7 +524,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#sentence">sentence breaks</a>
* for <a href="BreakIterator.html#sentence">sentence breaks</a>
* for the {@linkplain Locale#getDefault() default locale}.
* @return A break iterator for sentence breaks
*/
......@@ -535,7 +535,7 @@ public abstract class BreakIterator implements Cloneable
/**
* Returns a new <code>BreakIterator</code> instance
* for <a href="#sentence">sentence breaks</a>
* for <a href="BreakIterator.html#sentence">sentence breaks</a>
* for the given locale.
* @param locale the desired locale
* @return A break iterator for sentence breaks
......
......@@ -24,20 +24,17 @@
*/
package javax.swing;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.lang.reflect.*;
import java.lang.ref.WeakReference;
import java.security.AccessController;
import java.util.*;
import com.sun.java.swing.SwingUtilities3;
import sun.awt.SubRegionShowable;
import sun.java2d.SunGraphics2D;
import sun.security.action.GetPropertyAction;
import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
import sun.awt.SunToolkit;
import sun.util.logging.PlatformLogger;
......@@ -119,10 +116,6 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
* Farthest JComponent ancestor for the current paint/copyArea.
*/
private JComponent rootJ;
/**
* Parent Applet/Window for the current paint/copyArea
*/
private Container root;
/**
* Location of component being painted relative to root.
*/
......@@ -278,7 +271,9 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
public boolean paint(JComponent paintingComponent,
JComponent bufferComponent, Graphics g,
int x, int y, int w, int h) {
if (prepare(paintingComponent, true, x, y, w, h)) {
Container root = fetchRoot(paintingComponent);
if (prepare(paintingComponent, root, true, x, y, w, h)) {
if ((g instanceof SunGraphics2D) &&
((SunGraphics2D)g).getDestination() == root) {
// BufferStrategy may have already constrained the Graphics. To
......@@ -319,7 +314,9 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
//
// If the buffer isn't in sync there is no point in doing a copyArea,
// it has garbage.
if (prepare(c, false, 0, 0, 0, 0) && bufferInfo.isInSync()) {
Container root = fetchRoot(c);
if (prepare(c, root, false, 0, 0, 0, 0) && bufferInfo.isInSync()) {
if (clip) {
Rectangle cBounds = c.getVisibleRect();
int relX = xOffset + x;
......@@ -500,14 +497,14 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
*
* @return true if should use buffering per window in painting.
*/
private boolean prepare(JComponent c, boolean isPaint, int x, int y,
private boolean prepare(JComponent c, Container root, boolean isPaint, int x, int y,
int w, int h) {
if (bsg != null) {
bsg.dispose();
bsg = null;
}
bufferStrategy = null;
if (fetchRoot(c)) {
if (root != null) {
boolean contentsLost = false;
BufferInfo bufferInfo = getBufferInfo(root);
if (bufferInfo == null) {
......@@ -567,10 +564,10 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
return false;
}
private boolean fetchRoot(JComponent c) {
private Container fetchRoot(JComponent c) {
boolean encounteredHW = false;
rootJ = c;
root = c;
Container root = c;
xOffset = yOffset = 0;
while (root != null &&
(!(root instanceof Window) &&
......@@ -597,7 +594,7 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
// heavyweights. If we didn't do this when we
// went to show the descendants of the nested hw
// you would see nothing, so, we bail out here.
return false;
return null;
}
}
}
......@@ -613,11 +610,11 @@ class BufferStrategyPaintManager extends RepaintManager.PaintManager {
// bit tricky with Swing. This gives a good approximation
// of the various ways to turn on double buffering for
// components.
return true;
return root;
}
}
// Don't do true double buffering.
return false;
return null;
}
/**
......
......@@ -792,7 +792,7 @@ public class SwingUtilities implements SwingConstants
* @return true if the left mouse button was active
*/
public static boolean isLeftMouseButton(MouseEvent anEvent) {
return ((anEvent.getModifiers() & InputEvent.BUTTON1_MASK) != 0);
return (anEvent.getButton() == MouseEvent.BUTTON1);
}
/**
......@@ -802,7 +802,7 @@ public class SwingUtilities implements SwingConstants
* @return true if the middle mouse button was active
*/
public static boolean isMiddleMouseButton(MouseEvent anEvent) {
return ((anEvent.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK);
return (anEvent.getButton() == MouseEvent.BUTTON2);
}
/**
......@@ -812,7 +812,7 @@ public class SwingUtilities implements SwingConstants
* @return true if the right mouse button was active
*/
public static boolean isRightMouseButton(MouseEvent anEvent) {
return ((anEvent.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK);
return (anEvent.getButton() == MouseEvent.BUTTON3);
}
/**
......
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1 id="primaryColors">Primary Colors</h1>
......
......@@ -371,6 +371,12 @@ public class VM {
private final static int JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010;
private final static int JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020;
/*
* Returns the first non-null class loader up the execution stack,
* or null if only code from the null class loader is on the stack.
*/
public static native ClassLoader latestUserDefinedLoader();
static {
initialize();
}
......
......@@ -363,10 +363,10 @@ class Util {
try {
Class<?> cl = Class.forName("java.nio.DirectByteBuffer");
Constructor<?> ctor = cl.getDeclaredConstructor(
new Class[] { int.class,
long.class,
FileDescriptor.class,
Runnable.class });
new Class<?>[] { int.class,
long.class,
FileDescriptor.class,
Runnable.class });
ctor.setAccessible(true);
directByteBufferConstructor = ctor;
} catch (ClassNotFoundException |
......@@ -408,10 +408,10 @@ class Util {
try {
Class<?> cl = Class.forName("java.nio.DirectByteBufferR");
Constructor<?> ctor = cl.getDeclaredConstructor(
new Class[] { int.class,
long.class,
FileDescriptor.class,
Runnable.class });
new Class<?>[] { int.class,
long.class,
FileDescriptor.class,
Runnable.class });
ctor.setAccessible(true);
directByteBufferRConstructor = ctor;
} catch (ClassNotFoundException |
......
......@@ -109,14 +109,6 @@ public class MarshalInputStream extends ObjectInputStream {
}
}
/**
* Load the "rmi" native library.
*/
static {
java.security.AccessController.doPrivileged(
new sun.security.action.LoadLibraryAction("rmi"));
}
/**
* Create a new MarshalInputStream object.
*/
......@@ -262,7 +254,9 @@ public class MarshalInputStream extends ObjectInputStream {
* Returns the first non-null class loader up the execution stack, or null
* if only code from the null class loader is on the stack.
*/
private static native ClassLoader latestUserDefinedLoader();
private static ClassLoader latestUserDefinedLoader() {
return sun.misc.VM.latestUserDefinedLoader();
}
/**
* Fix for 4179055: Need to assist resolving sun stubs; resolve
......
......@@ -35,6 +35,7 @@ import java.util.*;
import java.util.List;
import java.util.concurrent.Callable;
import javax.accessibility.AccessibleContext;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
......@@ -82,6 +83,9 @@ public class FilePane extends JPanel implements PropertyChangeListener {
private JPanel currentViewPanel;
private String[] viewTypeActionNames;
private String filesListAccessibleName = null;
private String filesDetailsAccessibleName = null;
private JPopupMenu contextMenu;
private JMenu viewMenu;
......@@ -450,6 +454,9 @@ public class FilePane extends JPanel implements PropertyChangeListener {
gigaByteString = UIManager.getString("FileChooser.fileSizeGigaBytes", l);
fullRowSelection = UIManager.getBoolean("FileView.fullRowSelection");
filesListAccessibleName = UIManager.getString("FileChooser.filesListAccessibleName", l);
filesDetailsAccessibleName = UIManager.getString("FileChooser.filesDetailsAccessibleName", l);
renameErrorTitleText = UIManager.getString("FileChooser.renameErrorTitleText", l);
renameErrorText = UIManager.getString("FileChooser.renameErrorText", l);
renameErrorFileExistsText = UIManager.getString("FileChooser.renameErrorFileExistsText", l);
......@@ -634,6 +641,9 @@ public class FilePane extends JPanel implements PropertyChangeListener {
if (listViewBorder != null) {
scrollpane.setBorder(listViewBorder);
}
list.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, filesListAccessibleName);
p.add(scrollpane, BorderLayout.CENTER);
return p;
}
......@@ -1228,6 +1238,8 @@ public class FilePane extends JPanel implements PropertyChangeListener {
detailsTableModel.fireTableStructureChanged();
detailsTable.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, filesDetailsAccessibleName);
return p;
} // createDetailsView
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
"Eastern Daylight Time", "EDT"};
String EST_NSW[] = new String[] {"Eastern Standard Time (New South Wales)", "EST",
"Eastern Summer Time (New South Wales)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"Ghana Mean Time", "GMT",
"Ghana Summer Time", "GHST"};
String GAMBIER[] = new String[] {"Gambier Time", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"Samoa Standard Time", "SST",
"Samoa Daylight Time", "SDT"};
String WST_SAMOA[] = new String[] {"West Samoa Time", "WST",
"West Samoa Summer Time", "WSST"};
"West Samoa Daylight Time", "WSDT"};
String ChST[] = new String[] {"Chamorro Standard Time", "ChST",
"Chamorro Daylight Time", "ChDT"};
String VICTORIA[] = new String[] {"Eastern Standard Time (Victoria)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
"Tajikistan Summer Time", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Hovd Time", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
"Samara Summer Time", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
"Volgograd Summer Time", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
"\u00d6stliche Sommerzeit", "EDT"};
String EST_NSW[] = new String[] {"\u00d6stliche Normalzeit (New South Wales)", "EST",
"\u00d6stliche Sommerzeit (New South Wales)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"Ghanaische Normalzeit", "GMT",
"Ghanaische Sommerzeit", "GHST"};
String GAMBIER[] = new String[] {"Gambier Zeit", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"Samoa Normalzeit", "SST",
"Samoa Sommerzeit", "SDT"};
String WST_SAMOA[] = new String[] {"West Samoa Zeit", "WST",
"West Samoa Sommerzeit", "WSST"};
"West Samoa Sommerzeit", "WSDT"};
String ChST[] = new String[] {"Chamorro Normalzeit", "ChST",
"Chamorro Sommerzeit", "ChDT"};
String VICTORIA[] = new String[] {"\u00d6stliche Normalzeit (Victoria)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
"Tadschikische Sommerzeit", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Hovd Zeit", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
"Samarische Sommerzeit", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
"Wolgograder Sommerzeit", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
"Hora de verano Oriental", "EDT"};
String EST_NSW[] = new String[] {"Hora est\u00e1ndar Oriental (Nueva Gales del Sur)", "EST",
"Hora de verano Oriental (Nueva Gales del Sur)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"Hora central de Ghana", "GMT",
"Hora de verano de Ghana", "GHST"};
String GAMBIER[] = new String[] {"Hora de Gambier", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"Hora est\u00e1ndar de Samoa", "SST",
"Hora de verano de Samoa", "SDT"};
String WST_SAMOA[] = new String[] {"Hora de Samoa Occidental", "WST",
"Hora de verano de Samoa Occidental", "WSST"};
"Hora de verano de Samoa Occidental", "WSDT"};
String ChST[] = new String[] {"Hora est\u00e1ndar de Chamorro", "ChST",
"Hora de verano de Chamorro", "ChDT"};
String VICTORIA[] = new String[] {"Hora est\u00e1ndar del Este (Victoria)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
"Hora de verano de Tajikist\u00e1n", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Hora de Hovd", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
"Hora de verano de Samara", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
"Hora de verano de Volgogrado", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
"Heure avanc\u00e9e de l'Est", "EDT"} ;
String EST_NSW[] = new String[] {"Heure normale de l'Est (Nouvelle-Galles du Sud)", "EST",
"Heure d'\u00e9t\u00e9 de l'Est (Nouvelle-Galles du Sud)", "EST"} ;
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"Heure du Ghana", "GMT",
"Heure d'\u00e9t\u00e9 du Ghana", "GHST"};
String GAMBIER[] = new String[] {"Heure de Gambi", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"Heure standard de Samoa", "SST",
"Heure avanc\u00e9e de Samoa", "SDT"};
String WST_SAMOA[] = new String[] {"Heure des Samoas occidentales", "WST",
"Heure d'\u00e9t\u00e9 des Samoas occidentales", "WSST"} ;
"Heure d'\u00e9t\u00e9 des Samoas occidentales", "WSDT"} ;
String ChST[] = new String[] {"Heure normale des \u00eeles Mariannes", "ChST",
"Heure d'\u00e9t\u00e9 des \u00eeles Mariannes", "ChDT"};
String VICTORIA[] = new String[] {"Heure standard d'Australie orientale (Victoria)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
"Heure d'\u00e9t\u00e9 du Tadjikistan", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Heure de Hovd", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
"Heure d'\u00e9t\u00e9 de Samara", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
"Heure d'\u00e9t\u00e9 de Volgograd", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
"Ora legale USA orientale", "EDT"};
String EST_NSW[] = new String[] {"Ora solare dell'Australia orientale (Nuovo Galles del Sud)", "EST",
"Ora estiva dell'Australia orientale (Nuovo Galles del Sud)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"Ora media del Ghana", "GMT",
"Ora legale del Ghana", "GHST"};
String GAMBIER[] = new String[] {"Ora di Gambier", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"Ora standard di Samoa", "SST",
"Ora legale di Samoa", "SDT"};
String WST_SAMOA[] = new String[] {"Ora di Samoa", "WST",
"Ora estiva di Samoa", "WSST"};
"Ora estiva di Samoa", "WSDT"};
String ChST[] = new String[] {"Ora standard di Chamorro", "ChST",
"Ora legale di Chamorro", "ChDT"};
String VICTORIA[] = new String[] {"Ora orientale standard (Victoria)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
"Ora estiva del Tagikistan", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Ora di Hovd", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
"Ora estiva di Samara", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
"Ora estiva di Volgograd", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
"\u6771\u90e8\u590f\u6642\u9593", "EDT"};
String EST_NSW[] = new String[] {"\u6771\u90e8\u6a19\u6e96\u6642 (\u30cb\u30e5\u30fc\u30b5\u30a6\u30b9\u30a6\u30a7\u30fc\u30eb\u30ba)", "EST",
"\u6771\u90e8\u590f\u6642\u9593 (\u30cb\u30e5\u30fc\u30b5\u30a6\u30b9\u30a6\u30a7\u30fc\u30eb\u30ba)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"\u30ac\u30fc\u30ca\u6a19\u6e96\u6642", "GMT",
"\u30ac\u30fc\u30ca\u590f\u6642\u9593", "GHST"};
String GAMBIER[] = new String[] {"\u30ac\u30f3\u30d3\u30a2\u6642\u9593", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"\u30b5\u30e2\u30a2\u6a19\u6e96\u6642", "SST",
"\u30b5\u30e2\u30a2\u590f\u6642\u9593", "SDT"};
String WST_SAMOA[] = new String[] {"\u897f\u30b5\u30e2\u30a2\u6642\u9593", "WST",
"\u897f\u30b5\u30e2\u30a2\u590f\u6642\u9593", "WSST"};
"\u897f\u30b5\u30e2\u30a2\u590f\u6642\u9593", "WSDT"};
String ChST[] = new String[] {"\u30b0\u30a2\u30e0\u6a19\u6e96\u6642", "ChST",
"\u30b0\u30a2\u30e0\u590f\u6642\u9593", "ChDT"};
String VICTORIA[] = new String[] {"\u6771\u90e8\u6a19\u6e96\u6642 (\u30d3\u30af\u30c8\u30ea\u30a2)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
"\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3\u590f\u6642\u9593", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"\u30db\u30d6\u30c9\u6642\u9593", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
"\u30b5\u30de\u30e9\u590f\u6642\u9593", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
"\u30dc\u30eb\u30b4\u30b0\u30e9\u30fc\u30c9\u590f\u6642\u9593", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
"\ub3d9\ubd80 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "EDT"};
String EST_NSW[] = new String[] {"\ub3d9\ubd80 \ud45c\uc900\uc2dc(\ub274 \uc0ac\uc6b0\uc2a4 \uc6e8\uc77c\uc988)", "EST",
"\ub3d9\ubd80 \uc77c\uad11\uc808\uc57d\uc2dc\uac04(\ub274 \uc0ac\uc6b0\uc2a4 \uc6e8\uc77c\uc988)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"\uac00\ub098 \ud45c\uc900\uc2dc", "GMT",
"\uac00\ub098 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "GHST"};
String GAMBIER[] = new String[] {"\uac10\ube44\uc544 \uc2dc\uac04", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"\uc0ac\ubaa8\uc544 \ud45c\uc900\uc2dc", "SST",
"\uc0ac\ubaa8\uc544 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "SDT"};
String WST_SAMOA[] = new String[] {"\uc11c\uc0ac\ubaa8\uc544 \uc2dc\uac04", "WST",
"\uc11c\uc0ac\ubaa8\uc544 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "WSST"};
"\uc11c\uc0ac\ubaa8\uc544 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "WSDT"};
String ChST[] = new String[] {"\ucc28\ubaa8\ub85c \ud45c\uc900\uc2dc", "ChST",
"\ucc28\ubaa8\ub85c \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "ChDT"};
String VICTORIA[] = new String[] {"\ub3d9\ubd80 \ud45c\uc900\uc2dc(\ube45\ud1a0\ub9ac\uc544)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
"\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Hovd \uc2dc\uac04", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
"\uc0ac\ub9c8\ub77c \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
"\ubcfc\uace0\uadf8\ub77c\ub4dc \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -101,6 +101,8 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
"Hor\u00e1rio de luz natural oriental", "EDT"};
String EST_NSW[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o oriental (Nova Gales do Sul)", "EST",
"Fuso hor\u00e1rio de ver\u00e3o oriental (Nova Gales do Sul)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"Fuso hor\u00e1rio do meridiano de Gana", "GMT",
"Fuso hor\u00e1rio de ver\u00e3o de Gana", "GHST"};
String GAMBIER[] = new String[] {"Fuso hor\u00e1rio de Gambier", "GAMT",
......@@ -184,7 +186,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o de Samoa", "SST",
"Hor\u00e1rio de luz natural de Samoa", "SDT"};
String WST_SAMOA[] = new String[] {"Fuso hor\u00e1rio de Samoa Ocidental", "WST",
"Fuso hor\u00e1rio de ver\u00e3o de Samoa Ocidental", "WSST"};
"Fuso hor\u00e1rio de ver\u00e3o de Samoa Ocidental", "WSDT"};
String ChST[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o de Chamorro", "ChST",
"Hor\u00e1rio de luz natural de Chamorro", "ChDT"};
String VICTORIA[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o oriental (Victoria)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
"Fuso hor\u00e1rio de ver\u00e3o do Tadjiquist\u00e3o", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Fuso hor\u00e1rio de Hovd", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
"Fuso hor\u00e1rio de ver\u00e3o de Samara", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
"Fuso hor\u00e1rio de ver\u00e3o de Volgogrado", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
"Eastern, sommartid", "EDT"};
String EST_NSW[] = new String[] {"Eastern, normaltid (Nya Sydwales)", "EST",
"Eastern, sommartid (Nya Sydwales)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"Ghana, normaltid", "GMT",
"Ghana, sommartid", "GHST"};
String GAMBIER[] = new String[] {"Gambier, normaltid", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"Samoa, normaltid", "SST",
"Samoa, sommartid", "SDT"};
String WST_SAMOA[] = new String[] {"V\u00e4stsamoansk tid", "WST",
"V\u00e4stsamoansk sommartid", "WSST"};
"V\u00e4stsamoansk sommartid", "WSDT"};
String ChST[] = new String[] {"Chamorro, normaltid", "ChST",
"Chamorro, sommartid", "ChDT"};
String VICTORIA[] = new String[] {"\u00d6stlig normaltid (Victoria)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
"Tadzjikistan, sommartid", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"Hovd, normaltid", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
"Samara, sommartid", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
"Volgograd, sommartid", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
"\u4e1c\u90e8\u590f\u4ee4\u65f6", "EDT"};
String EST_NSW[] = new String[] {"\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\uff08\u65b0\u5357\u5a01\u5c14\u65af\uff09", "EST",
"\u4e1c\u90e8\u590f\u4ee4\u65f6\uff08\u65b0\u5357\u5a01\u5c14\u65af\uff09", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"\u52a0\u7eb3\u65f6\u95f4", "GMT",
"\u52a0\u7eb3\u590f\u4ee4\u65f6", "GHST"};
String GAMBIER[] = new String[] {"\u5188\u6bd4\u4e9a\u65f6\u95f4", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"\u8428\u6469\u4e9a\u7fa4\u5c9b\u6807\u51c6\u65f6\u95f4", "SST",
"\u8428\u6469\u4e9a\u7fa4\u5c9b\u590f\u4ee4\u65f6", "SDT"};
String WST_SAMOA[] = new String[] {"\u897f\u8428\u6469\u4e9a\u65f6\u95f4", "WST",
"\u897f\u8428\u6469\u4e9a\u590f\u4ee4\u65f6", "WSST"};
"\u897f\u8428\u6469\u4e9a\u590f\u4ee4\u65f6", "WSDT"};
String ChST[] = new String[] {"Chamorro \u6807\u51c6\u65f6\u95f4", "ChST",
"Chamorro \u590f\u4ee4\u65f6", "ChDT"};
String VICTORIA[] = new String[] {"\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\uff08\u7ef4\u591a\u5229\u4e9a\uff09", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
"\u5854\u5409\u514b\u65af\u5766\u590f\u4ee4\u65f6", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"\u79d1\u5e03\u591a\u65f6\u95f4", "HOVT",
......@@ -674,9 +677,8 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -684,7 +686,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -697,14 +699,14 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
"\u6c99\u9a6c\u62c9\u590f\u4ee4\u65f6", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -713,7 +715,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
"\u4f0f\u5c14\u52a0\u683c\u52d2\u590f\u4ee4\u65f6", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
......@@ -103,6 +103,8 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
"\u6771\u65b9\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "EDT"};
String EST_NSW[] = new String[] {"\u6771\u65b9\u6a19\u6e96\u6642\u9593 (\u65b0\u5357\u5a01\u723e\u65af)", "EST",
"\u6771\u65b9\u590f\u4ee4\u6642\u9593 (\u65b0\u5357\u5a01\u723e\u65af)", "EST"};
String FET[] = new String[] {"Further-eastern European Time", "FET",
"Further-eastern European Summer Time", "FEST"};
String GHMT[] = new String[] {"\u8fe6\u7d0d\u5e73\u5747\u6642\u9593", "GMT",
"\u8fe6\u7d0d\u590f\u4ee4\u6642\u9593", "GHST"};
String GAMBIER[] = new String[] {"\u7518\u6bd4\u723e\u6642\u9593", "GAMT",
......@@ -186,7 +188,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
String SAMOA[] = new String[] {"\u85a9\u6469\u4e9e\u6a19\u6e96\u6642\u9593", "SST",
"\u85a9\u6469\u4e9e\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "SDT"};
String WST_SAMOA[] = new String[] {"\u897f\u85a9\u6469\u4e9e\u6642\u9593", "WST",
"\u897f\u85a9\u6469\u4e9e\u590f\u4ee4\u6642\u9593", "WSST"};
"\u897f\u85a9\u6469\u4e9e\u590f\u4ee4\u6642\u9593", "WSDT"};
String ChST[] = new String[] {"\u67e5\u83ab\u6d1b\u6a19\u6e96\u6642\u9593", "ChST",
"\u67e5\u83ab\u6d1b\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "ChDT"};
String VICTORIA[] = new String[] {"\u6771\u90e8\u6a19\u6e96\u6642\u9593 (\u7dad\u591a\u5229\u4e9e\u90a6)", "EST",
......@@ -511,6 +513,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
"\u5854\u5409\u514b\u590f\u4ee4\u6642\u9593", "TJST"}},
{"Asia/Gaza", EET},
{"Asia/Harbin", CTT},
{"Asia/Hebron", EET},
{"Asia/Ho_Chi_Minh", ICT},
{"Asia/Hong_Kong", HKT},
{"Asia/Hovd", new String[] {"\u4faf\u5fb7 (Hovd) \u6642\u9593", "HOVT",
......@@ -675,9 +678,8 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{"Europe/Isle_of_Man", GMTBST},
{"Europe/Istanbul", EET},
{"Europe/Jersey", GMTBST},
{"Europe/Kaliningrad", new String[] {"Kaliningrad Time", "KALT",
"Kaliningrad Summer Time", "KALST"}},
{"Europe/Kiev", EET},
{"Europe/Kaliningrad", FET},
{"Europe/Kiev", FET},
{"Europe/Lisbon", WET},
{"Europe/Ljubljana", CET},
{"Europe/London", GMTBST},
......@@ -685,7 +687,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{"Europe/Madrid", CET},
{"Europe/Malta", CET},
{"Europe/Mariehamn", EET},
{"Europe/Minsk", EET},
{"Europe/Minsk", FET},
{"Europe/Monaco", CET},
{"Europe/Moscow", MSK},
{"Europe/Nicosia", EET},
......@@ -698,14 +700,14 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
"\u6c99\u99ac\u62c9\u590f\u4ee4\u6642\u9593", "SAMST"}},
{"Europe/San_Marino", CET},
{"Europe/Sarajevo", CET},
{"Europe/Simferopol", EET},
{"Europe/Simferopol", FET},
{"Europe/Skopje", CET},
{"Europe/Sofia", EET},
{"Europe/Stockholm", CET},
{"Europe/Tallinn", EET},
{"Europe/Tirane", CET},
{"Europe/Tiraspol", EET},
{"Europe/Uzhgorod", EET},
{"Europe/Uzhgorod", FET},
{"Europe/Vaduz", CET},
{"Europe/Vatican", CET},
{"Europe/Vienna", CET},
......@@ -714,7 +716,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
"\u4f0f\u723e\u52a0\u683c\u52d2\u590f\u4ee4\u6642\u9593", "VOLST"}},
{"Europe/Warsaw", CET},
{"Europe/Zagreb", CET},
{"Europe/Zaporozhye", EET},
{"Europe/Zaporozhye", FET},
{"Europe/Zurich", CET},
{"GB", GMTBST},
{"GB-Eire", GMTBST},
......
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -76,7 +76,7 @@ public class XMLUtils {
} catch (SAXException saxe) {
throw new InvalidPropertiesFormatException(saxe);
}
Element propertiesElement = (Element)doc.getChildNodes().item(1);
Element propertiesElement = doc.getDocumentElement();
String xmlVersion = propertiesElement.getAttribute("version");
if (xmlVersion.compareTo(EXTERNAL_XML_VERSION) > 0)
throw new InvalidPropertiesFormatException(
......
......@@ -173,16 +173,3 @@ Java_java_io_ObjectInputStream_bytesToDoubles(JNIEnv *env,
(*env)->ReleasePrimitiveArrayCritical(env, dst, doubles, 0);
}
/*
* Class: java_io_ObjectInputStream
* Method: latestUserDefinedLoader
* Signature: ()Ljava/lang/ClassLoader;
*
* Returns the first non-null class loader up the execution stack, or null
* if only code from the null class loader is on the stack.
*/
JNIEXPORT jobject JNICALL
Java_java_io_ObjectInputStream_latestUserDefinedLoader(JNIEnv *env, jclass cls)
{
return JVM_LatestUserDefinedLoader(env);
}
......@@ -8,8 +8,10 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
If you modify libpng you may insert additional notices immediately following
this sentence.
libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are
Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
This code is released under the libpng license.
libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
......@@ -106,4 +108,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
May 15, 2007
July 7, 2011
README for libpng version 1.2.18 - May 15, 2007 (shared library 12.0)
README for libpng version 1.5.4 - July 7, 2011 (shared library 15.0)
See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng.
Libpng comes in several distribution formats. Get libpng-*.tar.gz
or libpng-*.tar.bz2 if you want UNIX-style line endings in the text
files, or lpng*.zip if you want DOS-style line endings.
Libpng comes in several distribution formats. Get libpng-*.tar.gz,
libpng-*.tar.xz or libpng-*.tar.bz2 if you want UNIX-style line endings
in the text files, or lpng*.zip if you want DOS-style line endings.
Version 0.89 was the first official release of libpng. Don't let the
fact that it's the first release fool you. The libpng library has been in
......@@ -54,11 +54,11 @@ to set different actions based on whether the CRC error occurred in a
critical or an ancillary chunk.
The changes made to the library, and bugs fixed are based on discussions
on the PNG-implement mailing list
and not on material submitted privately to Guy, Andreas, or Glenn. They will
forward any good suggestions to the list.
on the PNG-implement mailing list and not on material submitted
privately to Guy, Andreas, or Glenn. They will forward any good
suggestions to the list.
For a detailed description on using libpng, read libpng.txt. For
For a detailed description on using libpng, read libpng-manual.txt. For
examples of libpng in a program, see example.c and pngtest.c. For usage
information and restrictions (what little they are) on libpng, see
png.h. For a description on using zlib (the compression library used by
......@@ -101,31 +101,29 @@ Finally, if you get any warning messages when compiling libpng
fix. Please mention "libpng" somewhere in the subject line. Thanks.
This release was created and will be supported by myself (of course
based in a large way on Guy's and Andreas' earlier work), and the PNG group.
based in a large way on Guy's and Andreas' earlier work), and the PNG
development group.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
Send comments/corrections/commendations to png-mng-implement at
lists.sourceforge.net (subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
to subscribe) or to glennrp at users.sourceforge.net
You can't reach Guy, the original libpng author, at the addresses
given in previous versions of this document. He and Andreas will read mail
addressed to the png-implement list, however.
given in previous versions of this document. He and Andreas will
read mail addressed to the png-implement list, however.
Please do not send general questions about PNG. Send them to
the (png-list at ccrc.wustl.edu, subscription required, write to
majordomo at ccrc.wustl.edu with "subscribe png-list" in your message).
On the other hand,
please do not send libpng questions to that address, send them to me
or to the png-implement list. I'll
get them in the end anyway. If you have a question about something
png-mng-misc at lists.sf.net (subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-misc to
subscribe). If you have a question about something
in the PNG specification that is related to using libpng, send it
to me. Send me any questions that start with "I was using libpng,
and ...". If in doubt, send questions to me. I'll bounce them
to others, if necessary.
Please do not send suggestions on how to change PNG. We have
been discussing PNG for nine years now, and it is official and
been discussing PNG for sixteen years now, and it is official and
finished. If you have suggestions for libpng, however, I'll
gladly listen. Even if your suggestion is not used immediately,
it may be used later.
......@@ -140,14 +138,17 @@ Files in this distribution:
TODO => Things not implemented in the current library
Y2KINFO => Statement of Y2K compliance
example.c => Example code for using libpng functions
libpng.3 => manual page for libpng (includes libpng.txt)
libpng.txt => Description of libpng and its functions
libpng.3 => manual page for libpng (includes libpng-manual.txt)
libpng-manual.txt => Description of libpng and its functions
libpngpf.3 => manual page for libpng's private functions
png.5 => manual page for the PNG format
png.c => Basic interface functions common to library
png.h => Library function and interface declarations
pngconf.h => System specific library configuration
pngasmrd.h => Header file for assembler-coded functions
png.h => Library function and interface declarations (public)
pngpriv.h => Library function and interface declarations (private)
pngconf.h => System specific library configuration (public)
pngstruct.h => png_struct declaration (private)
pnginfo.h => png_info struct declaration (private)
pngdebug.h => debugging macros (private)
pngerror.c => Error/warning message I/O functions
pngget.c => Functions for retrieving info from struct
pngmem.c => Memory handling functions
......@@ -174,84 +175,22 @@ Files in this distribution:
pngminus => Simple pnm2png and png2pnm programs
pngsuite => Test images
visupng => Contains a MSVC workspace for VisualPng
projects => Contains project files and workspaces for building DLL
beos => Contains a Beos workspace for building libpng
c5builder => Contains a Borland workspace for building libpng
and zlib
visualc6 => Contains a Microsoft Visual C++ (MSVC) workspace
for building libpng and zlib
netware.txt => Contains instructions for downloading a set of
project files for building libpng and zlib on
Netware.
wince.txt => Contains instructions for downloading a Microsoft
Visual C++ (Windows CD Toolkit) workspace for
building libpng and zlib on WindowsCE
projects => Contains project files and workspaces for
building a DLL
cbuilder5 => Contains a Borland workspace for building
libpng and zlib
visualc6 => Contains a Microsoft Visual C++ (MSVC)
workspace for building libpng and zlib
visualc71 => Contains a Microsoft Visual C++ (MSVC)
workspace for building libpng and zlib
xcode => Contains an Apple xcode
workspace for building libpng and zlib
scripts => Directory containing scripts for building libpng:
descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.elf => Linux/ELF makefile symbol versioning,
gcc, creates libpng12.so.0.1.2.18)
makefile.linux => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.18)
makefile.gcmmx => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.18,
uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
ansi2knr (Requires ansi2knr.c from
ftp://ftp.cs.wisc.edu/ghost)
makefile.aix => AIX makefile
makefile.cygwin => Cygwin/gcc makefile
makefile.darwin => Darwin makefile
makefile.dec => DEC Alpha UNIX makefile
makefile.freebsd => FreeBSD makefile
makefile.hpgcc => HPUX makefile using gcc
makefile.hpux => HPUX (10.20 and 11.00) makefile
makefile.hp64 => HPUX (10.20 and 11.00) makefile, 64 bit
makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
makefile.intel => Intel C/C++ version 4.0 and later
libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later
makefile.netbsd => NetBSD/cc makefile, PNGGCCRD, makes libpng.so.
makefile.ne12bsd => NetBSD/cc makefile, PNGGCCRD, makes libpng12.so
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics
(gcc, creates libpng12.so.0.1.2.18)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
(gcc, creates libpng12.so.0.1.2.18)
makefile.so9 => Solaris 9 makefile
(gcc, creates libpng12.so.0.1.2.18)
makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
makefile.mips => MIPS makefile
makefile.acorn => Acorn makefile
makefile.amiga => Amiga makefile
smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC
compiler (Requires SCOPTIONS, copied from
scripts/SCOPTIONS.ppc)
makefile.atari => Atari makefile
makefile.beos => BEOS makefile for X86
makefile.bor => Borland makefile (uses bcc)
makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode)
makefile.tc3 => Turbo C 3.0 makefile
makefile.dj2 => DJGPP 2 makefile
makefile.msc => Microsoft C makefile
makefile.vcawin32=> makefile for Microsoft Visual C++ 5.0 and
later (uses assembler code tuned for Intel MMX
platform)
makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and
later (does not use assembler code)
makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def)
pngos2.def => OS/2 module definition file used by makefile.os2
makefile.watcom => Watcom 10a+ Makefile, 32-bit flat memory model
makevms.com => VMS build script
SCOPTIONS.ppc => Used with smakefile.ppc
(see scripts/README.txt for the list of scripts)
Good luck, and happy coding.
-Glenn Randers-Pehrson (current maintainer)
-Glenn Randers-Pehrson (current maintainer, since 1998)
Internet: glennrp at users.sourceforge.net
-Andreas Eric Dilger (former maintainer, 1996-1997)
......
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* pngdebug.h - Debugging macros for libpng, also used in pngtest.c
*
* This file is available under and governed by the GNU General Public
* License version 2 only, as published by the Free Software Foundation.
* However, the following notice accompanied the original version of this
* file and, per its terms, should not be removed:
*
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
* Last changed in libpng 1.5.0 [January 6, 2011]
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
* and license in png.h
*/
/* Define PNG_DEBUG at compile time for debugging information. Higher
* numbers for PNG_DEBUG mean more debugging information. This has
* only been added since version 0.95 so it is not implemented throughout
* libpng yet, but more support will be added as needed.
*
* png_debug[1-2]?(level, message ,arg{0-2})
* Expands to a statement (either a simple expression or a compound
* do..while(0) statement) that outputs a message with parameter
* substitution if PNG_DEBUG is defined to 2 or more. If PNG_DEBUG
* is undefined, 0 or 1 every png_debug expands to a simple expression
* (actually ((void)0)).
*
* level: level of detail of message, starting at 0. A level 'n'
* message is preceded by 'n' tab characters (not implemented
* on Microsoft compilers unless PNG_DEBUG_FILE is also
* defined, to allow debug DLL compilation with no standard IO).
* message: a printf(3) style text string. A trailing '\n' is added
* to the message.
* arg: 0 to 2 arguments for printf(3) style substitution in message.
*/
#ifndef PNGDEBUG_H
#define PNGDEBUG_H
/* These settings control the formatting of messages in png.c and pngerror.c */
/* Moved to pngdebug.h at 1.5.0 */
# ifndef PNG_LITERAL_SHARP
# define PNG_LITERAL_SHARP 0x23
# endif
# ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET
# define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b
# endif
# ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET
# define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d
# endif
# ifndef PNG_STRING_NEWLINE
# define PNG_STRING_NEWLINE "\n"
# endif
#ifdef PNG_DEBUG
# if (PNG_DEBUG > 0)
# if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)
# include <crtdbg.h>
# if (PNG_DEBUG > 1)
# ifndef _DEBUG
# define _DEBUG
# endif
# ifndef png_debug
# define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)
# endif
# ifndef png_debug1
# define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)
# endif
# ifndef png_debug2
# define png_debug2(l,m,p1,p2) \
_RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)
# endif
# endif
# else /* PNG_DEBUG_FILE || !_MSC_VER */
# ifndef PNG_STDIO_SUPPORTED
# include <stdio.h> /* not included yet */
# endif
# ifndef PNG_DEBUG_FILE
# define PNG_DEBUG_FILE stderr
# endif /* PNG_DEBUG_FILE */
# if (PNG_DEBUG > 1)
/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on
* non-ISO compilers
*/
# ifdef __STDC__
# ifndef png_debug
# define png_debug(l,m) \
do { \
int num_tabs=l; \
fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \
} while (0)
# endif
# ifndef png_debug1
# define png_debug1(l,m,p1) \
do { \
int num_tabs=l; \
fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \
} while (0)
# endif
# ifndef png_debug2
# define png_debug2(l,m,p1,p2) \
do { \
int num_tabs=l; \
fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \
} while (0)
# endif
# else /* __STDC __ */
# ifndef png_debug
# define png_debug(l,m) \
do { \
int num_tabs=l; \
char format[256]; \
snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
m,PNG_STRING_NEWLINE); \
fprintf(PNG_DEBUG_FILE,format); \
} while (0)
# endif
# ifndef png_debug1
# define png_debug1(l,m,p1) \
do { \
int num_tabs=l; \
char format[256]; \
snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
m,PNG_STRING_NEWLINE); \
fprintf(PNG_DEBUG_FILE,format,p1); \
} while (0)
# endif
# ifndef png_debug2
# define png_debug2(l,m,p1,p2) \
do { \
int num_tabs=l; \
char format[256]; \
snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
m,PNG_STRING_NEWLINE); \
fprintf(PNG_DEBUG_FILE,format,p1,p2); \
} while (0)
# endif
# endif /* __STDC __ */
# endif /* (PNG_DEBUG > 1) */
# endif /* _MSC_VER */
# endif /* (PNG_DEBUG > 0) */
#endif /* PNG_DEBUG */
#ifndef png_debug
# define png_debug(l, m) ((void)0)
#endif
#ifndef png_debug1
# define png_debug1(l, m, p1) ((void)0)
#endif
#ifndef png_debug2
# define png_debug2(l, m, p1, p2) ((void)0)
#endif
#endif /* PNGDEBUG_H */
此差异已折叠。
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* pnginfo.h - header file for PNG reference library
*
* This file is available under and governed by the GNU General Public
* License version 2 only, as published by the Free Software Foundation.
* However, the following notice accompanied the original version of this
* file and, per its terms, should not be removed:
*
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
* Last changed in libpng 1.5.0 [January 6, 2011]
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
* and license in png.h
*/
/* png_info is a structure that holds the information in a PNG file so
* that the application can find out the characteristics of the image.
* If you are reading the file, this structure will tell you what is
* in the PNG file. If you are writing the file, fill in the information
* you want to put into the PNG file, using png_set_*() functions, then
* call png_write_info().
*
* The names chosen should be very close to the PNG specification, so
* consult that document for information about the meaning of each field.
*
* With libpng < 0.95, it was only possible to directly set and read the
* the values in the png_info_struct, which meant that the contents and
* order of the values had to remain fixed. With libpng 0.95 and later,
* however, there are now functions that abstract the contents of
* png_info_struct from the application, so this makes it easier to use
* libpng with dynamic libraries, and even makes it possible to use
* libraries that don't have all of the libpng ancillary chunk-handing
* functionality. In libpng-1.5.0 this was moved into a separate private
* file that is not visible to applications.
*
* The following members may have allocated storage attached that should be
* cleaned up before the structure is discarded: palette, trans, text,
* pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile,
* splt_palettes, scal_unit, row_pointers, and unknowns. By default, these
* are automatically freed when the info structure is deallocated, if they were
* allocated internally by libpng. This behavior can be changed by means
* of the png_data_freer() function.
*
* More allocation details: all the chunk-reading functions that
* change these members go through the corresponding png_set_*
* functions. A function to clear these members is available: see
* png_free_data(). The png_set_* functions do not depend on being
* able to point info structure members to any of the storage they are
* passed (they make their own copies), EXCEPT that the png_set_text
* functions use the same storage passed to them in the text_ptr or
* itxt_ptr structure argument, and the png_set_rows and png_set_unknowns
* functions do not make their own copies.
*/
#ifndef PNGINFO_H
#define PNGINFO_H
struct png_info_def
{
/* the following are necessary for every PNG file */
png_uint_32 width; /* width of image in pixels (from IHDR) */
png_uint_32 height; /* height of image in pixels (from IHDR) */
png_uint_32 valid; /* valid chunk data (see PNG_INFO_ below) */
png_size_t rowbytes; /* bytes needed to hold an untransformed row */
png_colorp palette; /* array of color values (valid & PNG_INFO_PLTE) */
png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */
png_uint_16 num_trans; /* number of transparent palette color (tRNS) */
png_byte bit_depth; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */
png_byte color_type; /* see PNG_COLOR_TYPE_ below (from IHDR) */
/* The following three should have been named *_method not *_type */
png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */
png_byte filter_type; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */
png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
/* The following is informational only on read, and not used on writes. */
png_byte channels; /* number of data channels per pixel (1, 2, 3, 4) */
png_byte pixel_depth; /* number of bits per pixel */
png_byte spare_byte; /* to align the data, and for future use */
png_byte signature[8]; /* magic bytes read by libpng from start of file */
/* The rest of the data is optional. If you are reading, check the
* valid field to see if the information in these are valid. If you
* are writing, set the valid field to those chunks you want written,
* and initialize the appropriate fields below.
*/
#if defined(PNG_gAMA_SUPPORTED)
/* The gAMA chunk describes the gamma characteristics of the system
* on which the image was created, normally in the range [1.0, 2.5].
* Data is valid if (valid & PNG_INFO_gAMA) is non-zero.
*/
png_fixed_point gamma;
#endif
#ifdef PNG_sRGB_SUPPORTED
/* GR-P, 0.96a */
/* Data valid if (valid & PNG_INFO_sRGB) non-zero. */
png_byte srgb_intent; /* sRGB rendering intent [0, 1, 2, or 3] */
#endif
#ifdef PNG_TEXT_SUPPORTED
/* The tEXt, and zTXt chunks contain human-readable textual data in
* uncompressed, compressed, and optionally compressed forms, respectively.
* The data in "text" is an array of pointers to uncompressed,
* null-terminated C strings. Each chunk has a keyword that describes the
* textual data contained in that chunk. Keywords are not required to be
* unique, and the text string may be empty. Any number of text chunks may
* be in an image.
*/
int num_text; /* number of comments read or comments to write */
int max_text; /* current size of text array */
png_textp text; /* array of comments read or comments to write */
#endif /* PNG_TEXT_SUPPORTED */
#ifdef PNG_tIME_SUPPORTED
/* The tIME chunk holds the last time the displayed image data was
* modified. See the png_time struct for the contents of this struct.
*/
png_time mod_time;
#endif
#ifdef PNG_sBIT_SUPPORTED
/* The sBIT chunk specifies the number of significant high-order bits
* in the pixel data. Values are in the range [1, bit_depth], and are
* only specified for the channels in the pixel data. The contents of
* the low-order bits is not specified. Data is valid if
* (valid & PNG_INFO_sBIT) is non-zero.
*/
png_color_8 sig_bit; /* significant bits in color channels */
#endif
#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \
defined(PNG_READ_BACKGROUND_SUPPORTED)
/* The tRNS chunk supplies transparency data for paletted images and
* other image types that don't need a full alpha channel. There are
* "num_trans" transparency values for a paletted image, stored in the
* same order as the palette colors, starting from index 0. Values
* for the data are in the range [0, 255], ranging from fully transparent
* to fully opaque, respectively. For non-paletted images, there is a
* single color specified that should be treated as fully transparent.
* Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
*/
png_bytep trans_alpha; /* alpha values for paletted image */
png_color_16 trans_color; /* transparent color for non-palette image */
#endif
#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
/* The bKGD chunk gives the suggested image background color if the
* display program does not have its own background color and the image
* is needs to composited onto a background before display. The colors
* in "background" are normally in the same color space/depth as the
* pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero.
*/
png_color_16 background;
#endif
#ifdef PNG_oFFs_SUPPORTED
/* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
* and downwards from the top-left corner of the display, page, or other
* application-specific co-ordinate space. See the PNG_OFFSET_ defines
* below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero.
*/
png_int_32 x_offset; /* x offset on page */
png_int_32 y_offset; /* y offset on page */
png_byte offset_unit_type; /* offset units type */
#endif
#ifdef PNG_pHYs_SUPPORTED
/* The pHYs chunk gives the physical pixel density of the image for
* display or printing in "phys_unit_type" units (see PNG_RESOLUTION_
* defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero.
*/
png_uint_32 x_pixels_per_unit; /* horizontal pixel density */
png_uint_32 y_pixels_per_unit; /* vertical pixel density */
png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */
#endif
#ifdef PNG_hIST_SUPPORTED
/* The hIST chunk contains the relative frequency or importance of the
* various palette entries, so that a viewer can intelligently select a
* reduced-color palette, if required. Data is an array of "num_palette"
* values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST)
* is non-zero.
*/
png_uint_16p hist;
#endif
#ifdef PNG_cHRM_SUPPORTED
/* The cHRM chunk describes the CIE color characteristics of the monitor
* on which the PNG was created. This data allows the viewer to do gamut
* mapping of the input image to ensure that the viewer sees the same
* colors in the image as the creator. Values are in the range
* [0.0, 0.8]. Data valid if (valid & PNG_INFO_cHRM) non-zero.
*/
png_fixed_point x_white;
png_fixed_point y_white;
png_fixed_point x_red;
png_fixed_point y_red;
png_fixed_point x_green;
png_fixed_point y_green;
png_fixed_point x_blue;
png_fixed_point y_blue;
#endif
#ifdef PNG_pCAL_SUPPORTED
/* The pCAL chunk describes a transformation between the stored pixel
* values and original physical data values used to create the image.
* The integer range [0, 2^bit_depth - 1] maps to the floating-point
* range given by [pcal_X0, pcal_X1], and are further transformed by a
* (possibly non-linear) transformation function given by "pcal_type"
* and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_
* defines below, and the PNG-Group's PNG extensions document for a
* complete description of the transformations and how they should be
* implemented, and for a description of the ASCII parameter strings.
* Data values are valid if (valid & PNG_INFO_pCAL) non-zero.
*/
png_charp pcal_purpose; /* pCAL chunk description string */
png_int_32 pcal_X0; /* minimum value */
png_int_32 pcal_X1; /* maximum value */
png_charp pcal_units; /* Latin-1 string giving physical units */
png_charpp pcal_params; /* ASCII strings containing parameter values */
png_byte pcal_type; /* equation type (see PNG_EQUATION_ below) */
png_byte pcal_nparams; /* number of parameters given in pcal_params */
#endif
/* New members added in libpng-1.0.6 */
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
/* Storage for unknown chunks that the library doesn't recognize. */
png_unknown_chunkp unknown_chunks;
int unknown_chunks_num;
#endif
#ifdef PNG_iCCP_SUPPORTED
/* iCCP chunk data. */
png_charp iccp_name; /* profile name */
png_bytep iccp_profile; /* International Color Consortium profile data */
png_uint_32 iccp_proflen; /* ICC profile data length */
png_byte iccp_compression; /* Always zero */
#endif
#ifdef PNG_sPLT_SUPPORTED
/* Data on sPLT chunks (there may be more than one). */
png_sPLT_tp splt_palettes;
png_uint_32 splt_palettes_num;
#endif
#ifdef PNG_sCAL_SUPPORTED
/* The sCAL chunk describes the actual physical dimensions of the
* subject matter of the graphic. The chunk contains a unit specification
* a byte value, and two ASCII strings representing floating-point
* values. The values are width and height corresponsing to one pixel
* in the image. Data values are valid if (valid & PNG_INFO_sCAL) is
* non-zero.
*/
png_byte scal_unit; /* unit of physical scale */
png_charp scal_s_width; /* string containing height */
png_charp scal_s_height; /* string containing width */
#endif
#ifdef PNG_INFO_IMAGE_SUPPORTED
/* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS)
non-zero */
/* Data valid if (valid & PNG_INFO_IDAT) non-zero */
png_bytepp row_pointers; /* the image bits */
#endif
};
#endif /* PNGINFO_H */
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
* THIS FILE WAS MODIFIED BY ORACLE, INC.
*/
/* libpng STANDARD API DEFINITION */
/* pnglibconf.h - library build configuration */
/* This file is available under and governed by the GNU General Public
* License version 2 only, as published by the Free Software Foundation.
* However, the following notice accompanied the original version of this
* file and, per its terms, should not be removed:
*/
/* libpng version 1.5.4 - last changed on June 22, 2011 */
/* Copyright (c) 1998-2011 Glenn Randers-Pehrson */
/* This code is released under the libpng license. */
/* For conditions of distribution and use, see the disclaimer */
/* and license in png.h */
/* pnglibconf.h */
/* Derived from: scripts/pnglibconf.dfa */
/* If you edit this file by hand you must obey the rules expressed in */
/* pnglibconf.dfa with respect to the dependencies between the following */
/* symbols. It is much better to generate a new file using */
/* scripts/libpngconf.mak */
#ifndef PNGLCONF_H
#define PNGLCONF_H
/* settings */
#define PNG_API_RULE 0
#define PNG_CALLOC_SUPPORTED
#define PNG_COST_SHIFT 3
#define PNG_DEFAULT_READ_MACROS 1
#define PNG_GAMMA_THRESHOLD_FIXED 5000
#define PNG_MAX_GAMMA_8 11
#define PNG_QUANTIZE_BLUE_BITS 5
#define PNG_QUANTIZE_GREEN_BITS 5
#define PNG_QUANTIZE_RED_BITS 5
#define PNG_sCAL_PRECISION 5
#define PNG_USER_CHUNK_CACHE_MAX 0
#define PNG_USER_CHUNK_MALLOC_MAX 0
#define PNG_USER_HEIGHT_MAX 1000000L
#define PNG_USER_WIDTH_MAX 1000000L
#define PNG_WEIGHT_SHIFT 8
#define PNG_ZBUF_SIZE 8192
/* end of settings */
/* options */
#define PNG_16BIT_SUPPORTED
#define PNG_ALIGN_MEMORY_SUPPORTED
#define PNG_BENIGN_ERRORS_SUPPORTED
#define PNG_bKGD_SUPPORTED
#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
#define PNG_CHECK_cHRM_SUPPORTED
#define PNG_cHRM_SUPPORTED
#define PNG_CONSOLE_IO_SUPPORTED
#define PNG_CONVERT_tIME_SUPPORTED
#define PNG_EASY_ACCESS_SUPPORTED
/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/
#define PNG_ERROR_TEXT_SUPPORTED
#define PNG_FIXED_POINT_SUPPORTED
#define PNG_FLOATING_ARITHMETIC_SUPPORTED
#define PNG_FLOATING_POINT_SUPPORTED
#define PNG_gAMA_SUPPORTED
#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
#define PNG_hIST_SUPPORTED
#define PNG_iCCP_SUPPORTED
#define PNG_INCH_CONVERSIONS_SUPPORTED
#define PNG_INFO_IMAGE_SUPPORTED
#define PNG_IO_STATE_SUPPORTED
#define PNG_iTXt_SUPPORTED
#define PNG_MNG_FEATURES_SUPPORTED
#define PNG_oFFs_SUPPORTED
#define PNG_pCAL_SUPPORTED
#define PNG_pHYs_SUPPORTED
#define PNG_POINTER_INDEXING_SUPPORTED
#define PNG_PROGRESSIVE_READ_SUPPORTED
#define PNG_READ_16BIT_SUPPORTED
#define PNG_READ_ALPHA_MODE_SUPPORTED
#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
#define PNG_READ_BACKGROUND_SUPPORTED
#define PNG_READ_BGR_SUPPORTED
#define PNG_READ_bKGD_SUPPORTED
#define PNG_READ_cHRM_SUPPORTED
#define PNG_READ_COMPOSITE_NODIV_SUPPORTED
#define PNG_READ_COMPRESSED_TEXT_SUPPORTED
#define PNG_READ_EXPAND_16_SUPPORTED
#define PNG_READ_EXPAND_SUPPORTED
#define PNG_READ_FILLER_SUPPORTED
#define PNG_READ_gAMA_SUPPORTED
#define PNG_READ_GAMMA_SUPPORTED
#define PNG_READ_GRAY_TO_RGB_SUPPORTED
#define PNG_READ_hIST_SUPPORTED
#define PNG_READ_iCCP_SUPPORTED
#define PNG_READ_INTERLACING_SUPPORTED
#define PNG_READ_INT_FUNCTIONS_SUPPORTED
#define PNG_READ_INVERT_ALPHA_SUPPORTED
#define PNG_READ_INVERT_SUPPORTED
#define PNG_READ_iTXt_SUPPORTED
#define PNG_READ_oFFs_SUPPORTED
#define PNG_READ_OPT_PLTE_SUPPORTED
#define PNG_READ_PACK_SUPPORTED
#define PNG_READ_PACKSWAP_SUPPORTED
#define PNG_READ_pCAL_SUPPORTED
#define PNG_READ_pHYs_SUPPORTED
#define PNG_READ_QUANTIZE_SUPPORTED
#define PNG_READ_RGB_TO_GRAY_SUPPORTED
#define PNG_READ_sBIT_SUPPORTED
#define PNG_READ_SCALE_16_TO_8_SUPPORTED
#define PNG_READ_sCAL_SUPPORTED
#define PNG_READ_SHIFT_SUPPORTED
#define PNG_READ_sPLT_SUPPORTED
#define PNG_READ_sRGB_SUPPORTED
#define PNG_READ_STRIP_16_TO_8_SUPPORTED
#define PNG_READ_STRIP_ALPHA_SUPPORTED
#define PNG_READ_SUPPORTED
#define PNG_READ_SWAP_ALPHA_SUPPORTED
#define PNG_READ_SWAP_SUPPORTED
#define PNG_READ_tEXt_SUPPORTED
#define PNG_READ_TEXT_SUPPORTED
#define PNG_READ_tIME_SUPPORTED
#define PNG_READ_TRANSFORMS_SUPPORTED
#define PNG_READ_tRNS_SUPPORTED
#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_READ_USER_CHUNKS_SUPPORTED
#define PNG_READ_USER_TRANSFORM_SUPPORTED
#define PNG_READ_zTXt_SUPPORTED
#define PNG_SAVE_INT_32_SUPPORTED
#define PNG_sBIT_SUPPORTED
#define PNG_sCAL_SUPPORTED
#define PNG_SEQUENTIAL_READ_SUPPORTED
#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
#define PNG_SETJMP_SUPPORTED
#define PNG_SET_USER_LIMITS_SUPPORTED
#define PNG_sPLT_SUPPORTED
#define PNG_sRGB_SUPPORTED
#define PNG_STDIO_SUPPORTED
#define PNG_tEXt_SUPPORTED
#define PNG_TEXT_SUPPORTED
#define PNG_TIME_RFC1123_SUPPORTED
#define PNG_tIME_SUPPORTED
#define PNG_tRNS_SUPPORTED
#define PNG_UNKNOWN_CHUNKS_SUPPORTED
#define PNG_USER_CHUNKS_SUPPORTED
#define PNG_USER_LIMITS_SUPPORTED
#define PNG_USER_MEM_SUPPORTED
#define PNG_USER_TRANSFORM_INFO_SUPPORTED
#define PNG_USER_TRANSFORM_PTR_SUPPORTED
#define PNG_WARNINGS_SUPPORTED
#define PNG_zTXt_SUPPORTED
/* end of options */
#endif /* PNGLCONF_H */
此差异已折叠。
......@@ -29,12 +29,15 @@
* However, the following notice accompanied the original version of this
* file and, per its terms, should not be removed:
*
* Last changed in libpng 1.2.13 November 13, 2006
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2006 Glenn Randers-Pehrson
* Last changed in libpng 1.5.0 [January 6, 2011]
* Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
* and license in png.h
*
* This file provides a location for all input. Users who need
* special handling are expected to write a function that has the same
* arguments as this and performs a similar function, but that possibly
......@@ -43,54 +46,53 @@
* libpng use it at run time with png_set_read_fn(...).
*/
#define PNG_INTERNAL
#include "png.h"
#include "pngpriv.h"
#if defined(PNG_READ_SUPPORTED)
#ifdef PNG_READ_SUPPORTED
/* Read the data from whatever input you are using. The default routine
reads from a file pointer. Note that this routine sometimes gets called
with very small lengths, so you should implement some kind of simple
buffering if you are using unbuffered reads. This should never be asked
to read more then 64K on a 16 bit machine. */
* reads from a file pointer. Note that this routine sometimes gets called
* with very small lengths, so you should implement some kind of simple
* buffering if you are using unbuffered reads. This should never be asked
* to read more then 64K on a 16 bit machine.
*/
void /* PRIVATE */
png_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
png_debug1(4,"reading %d bytes\n", (int)length);
png_debug1(4, "reading %d bytes", (int)length);
if (png_ptr->read_data_fn != NULL)
(*(png_ptr->read_data_fn))(png_ptr, data, length);
else
png_error(png_ptr, "Call to NULL read function");
}
#if !defined(PNG_NO_STDIO)
#ifdef PNG_STDIO_SUPPORTED
/* This is the function that does the actual reading of data. If you are
not reading from a standard C stream, you should create a replacement
read_data function and use it at run time with png_set_read_fn(), rather
than changing the library. */
#ifndef USE_FAR_KEYWORD
void PNGAPI
* not reading from a standard C stream, you should create a replacement
* read_data function and use it at run time with png_set_read_fn(), rather
* than changing the library.
*/
# ifndef USE_FAR_KEYWORD
void PNGCBAPI
png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
png_size_t check;
if(png_ptr == NULL) return;
if (png_ptr == NULL)
return;
/* fread() returns 0 on error, so it is OK to store this in a png_size_t
* instead of an int, which is what fread() actually returns.
*/
#if defined(_WIN32_WCE)
if ( !ReadFile((HANDLE)(png_ptr->io_ptr), data, length, &check, NULL) )
check = 0;
#else
check = (png_size_t)fread(data, (png_size_t)1, length,
(png_FILE_p)png_ptr->io_ptr);
#endif
check = fread(data, 1, length, (png_FILE_p)png_ptr->io_ptr);
if (check != length)
png_error(png_ptr, "Read Error");
}
#else
/* this is the model-independent version. Since the standard I/O library
# else
/* This is the model-independent version. Since the standard I/O library
can't handle far buffers in the medium and small models, we have to copy
the data.
*/
......@@ -98,80 +100,88 @@ png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
#define NEAR_BUF_SIZE 1024
#define MIN(a,b) (a <= b ? a : b)
static void PNGAPI
static void PNGCBAPI
png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
int check;
png_size_t check;
png_byte *n_data;
png_FILE_p io_ptr;
if(png_ptr == NULL) return;
if (png_ptr == NULL)
return;
/* Check if data really is near. If so, use usual code. */
n_data = (png_byte *)CVT_PTR_NOCHECK(data);
io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr);
if ((png_bytep)n_data == data)
{
#if defined(_WIN32_WCE)
if ( !ReadFile((HANDLE)(png_ptr->io_ptr), data, length, &check, NULL) )
check = 0;
#else
check = fread(n_data, 1, length, io_ptr);
#endif
}
else
{
png_byte buf[NEAR_BUF_SIZE];
png_size_t read, remaining, err;
check = 0;
remaining = length;
do
{
read = MIN(NEAR_BUF_SIZE, remaining);
#if defined(_WIN32_WCE)
if ( !ReadFile((HANDLE)(io_ptr), buf, read, &err, NULL) )
err = 0;
#else
err = fread(buf, (png_size_t)1, read, io_ptr);
#endif
err = fread(buf, 1, read, io_ptr);
png_memcpy(data, buf, read); /* copy far buffer to near buffer */
if(err != read)
if (err != read)
break;
else
check += err;
data += read;
remaining -= read;
}
while (remaining != 0);
}
if ((png_uint_32)check != (png_uint_32)length)
png_error(png_ptr, "read Error");
}
#endif
# endif
#endif
/* This function allows the application to supply a new input function
for libpng if standard C streams aren't being used.
This function takes as its arguments:
png_ptr - pointer to a png input data structure
io_ptr - pointer to user supplied structure containing info about
the input functions. May be NULL.
read_data_fn - pointer to a new input function that takes as its
arguments a pointer to a png_struct, a pointer to
a location where input data can be stored, and a 32-bit
unsigned int that is the number of bytes to be read.
To exit and output any fatal error messages the new write
function should call png_error(png_ptr, "Error msg"). */
* for libpng if standard C streams aren't being used.
*
* This function takes as its arguments:
*
* png_ptr - pointer to a png input data structure
*
* io_ptr - pointer to user supplied structure containing info about
* the input functions. May be NULL.
*
* read_data_fn - pointer to a new input function that takes as its
* arguments a pointer to a png_struct, a pointer to
* a location where input data can be stored, and a 32-bit
* unsigned int that is the number of bytes to be read.
* To exit and output any fatal error messages the new write
* function should call png_error(png_ptr, "Error msg").
* May be NULL, in which case libpng's default function will
* be used.
*/
void PNGAPI
png_set_read_fn(png_structp png_ptr, png_voidp io_ptr,
png_rw_ptr read_data_fn)
{
if(png_ptr == NULL) return;
if (png_ptr == NULL)
return;
png_ptr->io_ptr = io_ptr;
#if !defined(PNG_NO_STDIO)
#ifdef PNG_STDIO_SUPPORTED
if (read_data_fn != NULL)
png_ptr->read_data_fn = read_data_fn;
else
png_ptr->read_data_fn = png_default_read_data;
#else
......@@ -183,12 +193,11 @@ png_set_read_fn(png_structp png_ptr, png_voidp io_ptr,
{
png_ptr->write_data_fn = NULL;
png_warning(png_ptr,
"It's an error to set both read_data_fn and write_data_fn in the ");
png_warning(png_ptr,
"same structure. Resetting write_data_fn to NULL.");
"Can't set both read_data_fn and write_data_fn in the"
" same structure");
}
#if defined(PNG_WRITE_FLUSH_SUPPORTED)
#ifdef PNG_WRITE_FLUSH_SUPPORTED
png_ptr->output_flush_fn = NULL;
#endif
}
......
此差异已折叠。
此差异已折叠。
......@@ -111,6 +111,11 @@ Java_sun_misc_VM_getThreadStateValues(JNIEnv *env, jclass cls,
get_thread_state_info(env, JAVA_THREAD_STATE_TERMINATED, values, names);
}
JNIEXPORT jobject JNICALL
Java_sun_misc_VM_latestUserDefinedLoader(JNIEnv *env, jclass cls) {
return JVM_LatestUserDefinedLoader(env);
}
typedef void (JNICALL *GetJvmVersionInfo_fp)(JNIEnv*, jvm_version_info*, size_t);
JNIEXPORT void JNICALL
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册