OpenJDK / jdk / hs
changeset 49369:1d1ecade0126
Merge
author | prr |
---|---|
date | Thu, 08 Mar 2018 10:18:28 -0800 |
parents | 96bebffe0be1 2478f56cf409 |
children | f942a873a53e |
files | make/data/x11wrappergen/functions.txt make/data/x11wrappergen/sizes.32 make/data/x11wrappergen/sizes.64 make/data/x11wrappergen/sizes.64-solaris-i386 src/java.base/share/classes/javax/security/auth/Policy.java src/java.base/share/classes/sun/security/provider/AuthPolicyFile.java test/jdk/sanity/releaseFile/NegativeSOURCETest.java |
diffstat | 123 files changed, 6731 insertions(+), 6686 deletions(-) [+] |
line wrap: on
line diff
--- a/make/InitSupport.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/InitSupport.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -435,7 +435,7 @@ define PrepareCompareBuild $(ECHO) "Preparing for comparison rebuild" # Apply patch, if any - $(if $(COMPARE_BUILD_PATCH), $(PATCH) -p1 < $(COMPARE_BUILD_PATCH)) + $(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -p1 < $(COMPARE_BUILD_PATCH)) # Move the first build away temporarily $(RM) -r $(topdir)/build/.compare-build-temp $(MKDIR) -p $(topdir)/build/.compare-build-temp @@ -455,7 +455,7 @@ # Cleanup after a compare build define CleanupCompareBuild # If running with a COMPARE_BUILD patch, reverse-apply it - $(if $(COMPARE_BUILD_PATCH), $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH)) + $(if $(COMPARE_BUILD_PATCH), cd $(topdir) && $(PATCH) -R -p1 < $(COMPARE_BUILD_PATCH)) # Move this build away and restore the original build $(MKDIR) -p $(topdir)/build/compare-build $(MV) $(OUTPUTDIR) $(COMPARE_BUILD_OUTPUTDIR)
--- a/make/Main.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/Main.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -399,10 +399,13 @@ update-build-docs: +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateBuildDocs.gmk) +update-x11wrappers: + +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateX11Wrappers.gmk) + ALL_TARGETS += docs-jdk-api-javadoc docs-jdk-api-modulegraph \ docs-javase-api-javadoc docs-javase-api-modulegraph \ docs-reference-api-javadoc docs-reference-api-modulegraph docs-jdk-specs \ - docs-jdk-index docs-zip update-build-docs + docs-jdk-index docs-zip update-build-docs update-x11wrappers ################################################################################ # Cross compilation support @@ -724,9 +727,9 @@ # If not already set, set the JVM target so that the JVM will be built. JVM_MAIN_TARGETS ?= hotspot - + # Building java.base-jmod requires all of VM (ie hotspot) to be built. - java.base-jmod: $(JVM_MAIN_TARGETS) + java.base-jmod: $(JVM_MAIN_TARGETS) # Declare dependencies from <module>-jmod to all other module targets # When creating a BUILDJDK, the java compilation has already been done by the @@ -830,7 +833,7 @@ # If not already set, then set the JVM specific docs targets JVM_DOCS_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-gensrc - + # The gensrc steps for hotspot and jdk.jdi create html spec files. docs-jdk-specs: $(JVM_DOCS_TARGETS) jdk.jdi-gensrc \ docs-jdk-index @@ -894,6 +897,8 @@ generate-summary: jmods buildtools-modules + update-x11wrappers: java.base-copy buildtools-jdk + endif ################################################################################
--- a/make/RunTests.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/RunTests.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -60,6 +60,18 @@ endif endef +# Setup _NT_SYMBOL_PATH on Windows +ifeq ($(OPENJDK_TARGET_OS), windows) + ifndef _NT_SYMBOL_PATH + # Can't use PathList here as it adds quotes around the value. + _NT_SYMBOL_PATH := \ + $(subst $(SPACE),;, $(foreach p, $(sort $(dir $(wildcard \ + $(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), $(call FixPath, $p))) + export _NT_SYMBOL_PATH + $(info _NT_SYMBOL_PATH $(_NT_SYMBOL_PATH)) + endif +endif + ################################################################################ # Hook to include the corresponding custom file, if present. $(eval $(call IncludeCustomExtension, RunTests.gmk)) @@ -496,6 +508,11 @@ $1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR # Some tests needs to find a boot JDK using the JDK8_HOME variable. $1_JTREG_BASIC_OPTIONS += -e:JDK8_HOME=$$(BOOT_JDK) + # If running on Windows, propagate the _NT_SYMBOL_PATH to enable + # symbol lookup in hserr files + ifeq ($$(OPENJDK_TARGET_OS), windows) + $1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH + endif $1_JTREG_BASIC_OPTIONS += \ $$(addprefix -javaoption:, $$(JTREG_JAVA_OPTIONS)) \
--- a/make/RunTestsPrebuilt.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/RunTestsPrebuilt.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -113,6 +113,7 @@ # These can have default values based on the ones above $(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk)) $(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test)) +$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols)) # Provide default values for tools that we need $(eval $(call SetupVariable,MAKE,make,NO_CHECK)) @@ -245,6 +246,7 @@ JT_HOME := $(JT_HOME), \ JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \ TEST_IMAGE_DIR := $(TEST_IMAGE_DIR), \ + SYMBOLS_IMAGE_DIR := $(SYMBOLS_IMAGE_DIR), \ MAKE := $(MAKE), \ BASH := $(BASH), \ JIB_JAR := $(JIB_JAR), \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/UpdateX11Wrappers.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -0,0 +1,101 @@ +# +# Copyright (c) 2012, 2018, 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. +# + +################################################################################ + +default: all + +include $(SPEC) +include MakeBase.gmk +include NativeCompilation.gmk +include ToolsJdk.gmk + +################################################################################ +# This file is responsible for extracting the x11 native struct offsets to +# the xawt Java library. The tool needs to be run on the os/arch that +# will host the final jvm, thus the tool cannot be used when cross compiling. +# +# Two versions of the generated offset file, sizes-32.txt and sizes-64.txt are +# committed into the source code repository. These are the ones used in +# GensrcX11Wrappers.gmk to generate the Java code during the build. +################################################################################ + +ifeq ($(COMPILE_TYPE), cross) + $(error It is not possible to update the x11wrappers when cross-compiling) +endif + +X11WRAPPERS_OUTPUT := $(SUPPORT_OUTPUTDIR)/x11wrappers + +GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen + +BITS := $(OPENJDK_TARGET_CPU_BITS) + +# Generate the C code for the program that will output the offset file. +$(X11WRAPPERS_OUTPUT)/src/data_generator.c: $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BUILD_TOOLS_JDK) + $(call LogInfo, Generating X11 wrapper data generator source code) + $(call MakeDir, $(@D)) + $(call ExecuteWithLog, $@, \ + $(TOOL_WRAPPERGENERATOR) gen_c_source $@ $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BITS)) + +DATA_GENERATOR_INCLUDES := \ + -I$(TOPDIR)/src/hotspot/share/include \ + -I$(TOPDIR)/src/hotspot/os/$(HOTSPOT_TARGET_OS_TYPE)/include \ + -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base \ + -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \ + -I$(TOPDIR)/src/java.base/share/native/libjava \ + -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \ + -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \ + -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \ + -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \ + # + +# Compile the generated C code into an executable. +$(eval $(call SetupNativeCompilation, BUILD_DATA_GENERATOR, \ + PROGRAM := data_generator, \ + OUTPUT_DIR := $(X11WRAPPERS_OUTPUT)/bin, \ + EXTRA_FILES := $(X11WRAPPERS_OUTPUT)/src/data_generator.c, \ + CFLAGS := $(X_CFLAGS) $(DATA_GENERATOR_INCLUDES) $(CFLAGS_JDKEXE), \ + LDFLAGS := $(LDFLAGS_JDKEXE), \ + LIBS := $(X_LIBS) -lc, \ + OBJECT_DIR := $(X11WRAPPERS_OUTPUT)/objs, \ +)) + +# Run the executable to create the data file. +$(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt: $(BUILD_DATA_GENERATOR_TARGET) + $(call LogInfo, Generating X11 wrapper data files) + $(call MakeDir, $(@D)) + $(call ExecuteWithLog, $(X11WRAPPERS_OUTPUT)/generation, \ + $(BUILD_DATA_GENERATOR_TARGET) | $(SORT) > $@) + $(ECHO) IMPORTANT: If you update the X11 wrapper data files, they most certainly + $(ECHO) need to be updated for both 32 and 64 bit platforms. You have now + $(ECHO) updated them for $(BITS) bit platforms only. + +TARGETS += $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt + +################################################################################ + +all: $(TARGETS) + +.PHONY: all default
--- a/make/autoconf/flags-cflags.m4 Thu Mar 08 14:31:54 2018 +0530 +++ b/make/autoconf/flags-cflags.m4 Thu Mar 08 10:18:28 2018 -0800 @@ -108,29 +108,19 @@ [ # Debug symbols if test "x$TOOLCHAIN_TYPE" = xgcc; then - if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then - CFLAGS_DEBUG_SYMBOLS="-g1" - else - CFLAGS_DEBUG_SYMBOLS="-g" - fi + CFLAGS_DEBUG_SYMBOLS="-g" elif test "x$TOOLCHAIN_TYPE" = xclang; then CFLAGS_DEBUG_SYMBOLS="-g" elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then - CFLAGS_DEBUG_SYMBOLS="-g -xs" # -g0 enables debug symbols without disabling inlining. - CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" + CFLAGS_DEBUG_SYMBOLS="-g0 -xs" elif test "x$TOOLCHAIN_TYPE" = xxlc; then CFLAGS_DEBUG_SYMBOLS="-g" elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then CFLAGS_DEBUG_SYMBOLS="-Zi" fi - if test "x$CXXFLAGS_DEBUG_SYMBOLS" = x; then - # If we did not specify special flags for C++, use C version - CXXFLAGS_DEBUG_SYMBOLS="$CFLAGS_DEBUG_SYMBOLS" - fi AC_SUBST(CFLAGS_DEBUG_SYMBOLS) - AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS) # FIXME: This was never used in the old build. What to do with it? if test "x$TOOLCHAIN_TYPE" = xgcc; then @@ -143,13 +133,7 @@ # Debug symbols for JVM_CFLAGS if test "x$TOOLCHAIN_TYPE" = xsolstudio; then - JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -xs" - if test "x$DEBUG_LEVEL" = xslowdebug; then - JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g" - else - # -g0 does not disable inlining, which -g does. - JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g0" - fi + JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g0 -xs" elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -Z7 -d2Zi+" else @@ -496,7 +480,6 @@ if test "x$DEBUG_LEVEL" != xrelease; then DEBUG_OPTIONS_FLAGS_JDK="$CFLAGS_DEBUG_OPTIONS" DEBUG_SYMBOLS_CFLAGS_JDK="$CFLAGS_DEBUG_SYMBOLS" - DEBUG_SYMBOLS_CXXFLAGS_JDK="$CXXFLAGS_DEBUG_SYMBOLS" fi #### TOOLCHAIN DEFINES @@ -556,6 +539,12 @@ TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \ -library=stlport4 -mt -features=no%except" + if test "x$DEBUG_LEVEL" = xslowdebug; then + # Previously -g was used instead of -g0 for slowdebug; this is equivalent + # to setting +d. + TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM +d" + fi + elif test "x$TOOLCHAIN_TYPE" = xxlc; then TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \ @@ -825,16 +814,16 @@ CFLAGS_JDK_COMMON="$ALWAYS_CFLAGS_JDK $ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \ $OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \ - $WARNING_CFLAGS $WARNING_CFLAGS_JDK" + $WARNING_CFLAGS $WARNING_CFLAGS_JDK $DEBUG_SYMBOLS_CFLAGS_JDK" # Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags. # (Currently we don't have any OPENJDK_BUILD_EXTRA_CFLAGS, but that might # change in the future.) - CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY $DEBUG_SYMBOLS_CFLAGS_JDK \ + CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY \ $WARNING_CFLAGS_JDK_CONLY ${$2EXTRA_CFLAGS}" CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \ - $DEBUG_SYMBOLS_CXXFLAGS_JDK $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}" + $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}" $1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}" $1_CFLAGS_JDK="${$1_DEFINES_CPU_JDK} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JDK} ${$1_TOOLCHAIN_CFLAGS}"
--- a/make/autoconf/flags.m4 Thu Mar 08 14:31:54 2018 +0530 +++ b/make/autoconf/flags.m4 Thu Mar 08 10:18:28 2018 -0800 @@ -236,7 +236,10 @@ if test "x$TOOLCHAIN_TYPE" = xxlc; then MACHINE_FLAG="-q${OPENJDK_TARGET_CPU_BITS}" elif test "x$TOOLCHAIN_TYPE" != xmicrosoft; then - MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}" + if test "x$OPENJDK_TARGET_CPU" != xaarch64 && + test "x$OPENJDK_TARGET_CPU" != xarm; then + MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}" + fi fi # FIXME: global flags are not used yet...
--- a/make/autoconf/spec.gmk.in Thu Mar 08 14:31:54 2018 +0530 +++ b/make/autoconf/spec.gmk.in Thu Mar 08 10:18:28 2018 -0800 @@ -532,7 +532,6 @@ ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@ CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@ -CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@ # # Compress (or not) jars
--- a/make/common/NativeCompilation.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/common/NativeCompilation.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -150,7 +150,7 @@ define replace_with_obj_extension $(strip \ $(foreach extension, $(NATIVE_SOURCE_EXTENSIONS), \ - $(patsubst $(extension),%$(OBJ_SUFFIX),$(filter $(extension),$1))) \ + $(patsubst $(extension),%$(OBJ_SUFFIX), $(filter $(extension), $1))) \ ) endef @@ -183,150 +183,167 @@ -e 's/$$$$/ :/' \ # -define add_native_source - # param 1 = BUILD_MYPACKAGE - # parma 2 = the source file name (..../alfa.c or .../beta.cpp) - # param 3 = the bin dir that stores all .o (.obj) and .d files. - # param 4 = the c flags to the compiler - # param 5 = the c compiler - # param 6 = the c++ flags to the compiler - # param 7 = the c++ compiler - # param 8 = the flags to the assembler - # param 9 = set to disable THIS_FILE +################################################################################ +# Create the recipe needed to compile a single native source file. +# +# Parameter 1 is the name of the rule, based on the name of the library/ +# program being build and the name of the source code file, e.g. +# BUILD_LIBFOO_fooMain.cpp. +# +# Remaining parameters are named arguments: +# FILE - The full path of the source file to compiler +# BASE - The name of the rule for the entire binary to build ($1) +# DISABLE_THIS_FILE_DEFINE - Set to true to disable the THIS_FILE define. +# +SetupCompileNativeFile = $(NamedParamsMacroTemplate) +define SetupCompileNativeFileBody + $1_FILENAME := $$(notdir $$($1_FILE)) - ifeq ($9, ) - $1_$2_THIS_FILE = -DTHIS_FILE='"$$(<F)"' - endif + # The target file to be generated. + $1_OBJ := $$($$($1_BASE)_OBJECT_DIR)/$$(call replace_with_obj_extension, \ + $$($1_FILENAME)) - ifeq ($$($1_$(notdir $2)_OPTIMIZATION), ) - $1_$(notdir $2)_OPT_CFLAGS := $$($1_OPT_CFLAGS) - $1_$(notdir $2)_OPT_CXXFLAGS := $$($1_OPT_CXXFLAGS) - else - ifeq (NONE, $$($1_$(notdir $2)_OPTIMIZATION)) - $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_NONE) - $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE) - else ifeq (LOW, $$($1_$(notdir $2)_OPTIMIZATION)) - $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_NORM) - $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM) - else ifeq (HIGH, $$($1_$(notdir $2)_OPTIMIZATION)) - $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_HI) - $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_HI) - else ifeq (HIGHEST, $$($1_$(notdir $2)_OPTIMIZATION)) - $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_HIGHEST) - $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST) - else ifeq (HIGHEST_JVM, $$($1_$(notdir $2)_OPTIMIZATION)) - $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM) - $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM) - else ifeq (SIZE, $$($1_$(notdir $2)_OPTIMIZATION)) - $1_$(notdir $2)_OPT_CFLAGS := $(C_O_FLAG_SIZE) - $1_$(notdir $2)_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE) + # Only continue if this object file hasn't been processed already. This lets + # the first found source file override any other with the same name. + ifeq ($$(findstring $$($1_OBJ), $$($$($1_BASE)_OBJS_SO_FAR)), ) + $$($1_BASE)_OBJS_SO_FAR += $$($1_OBJ) + # This is the definite source file to use for $1_FILENAME. + $1_SRC_FILE := $$($1_FILE) + + ifneq ($$($1_DISABLE_THIS_FILE_DEFINE), true) + $1_THIS_FILE = -DTHIS_FILE='"$$(<F)"' + endif + + ifeq ($$($1_OPTIMIZATION), ) + $1_OPT_CFLAGS := $$($$($1_BASE)_OPT_CFLAGS) + $1_OPT_CXXFLAGS := $$($$($1_BASE)_OPT_CXXFLAGS) else - $$(error Unknown value for OPTIMIZATION: $$($1_$(notdir $2)_OPTIMIZATION)) + ifeq ($$($1_OPTIMIZATION), NONE) + $1_OPT_CFLAGS := $(C_O_FLAG_NONE) + $1_OPT_CXXFLAGS := $(CXX_O_FLAG_NONE) + else ifeq ($$($1_OPTIMIZATION), LOW) + $1_OPT_CFLAGS := $(C_O_FLAG_NORM) + $1_OPT_CXXFLAGS := $(CXX_O_FLAG_NORM) + else ifeq ($$($1_OPTIMIZATION), HIGH) + $1_OPT_CFLAGS := $(C_O_FLAG_HI) + $1_OPT_CXXFLAGS := $(CXX_O_FLAG_HI) + else ifeq ($$($1_OPTIMIZATION), HIGHEST) + $1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST) + $1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST) + else ifeq ($$($1_OPTIMIZATION), HIGHEST_JVM) + $1_OPT_CFLAGS := $(C_O_FLAG_HIGHEST_JVM) + $1_OPT_CXXFLAGS := $(CXX_O_FLAG_HIGHEST_JVM) + else ifeq ($$($1_OPTIMIZATION), SIZE) + $1_OPT_CFLAGS := $(C_O_FLAG_SIZE) + $1_OPT_CXXFLAGS := $(CXX_O_FLAG_SIZE) + else + $$(error Unknown value for file OPTIMIZATION: $$($1_OPTIMIZATION)) + endif endif - endif - ifneq ($$($1_PRECOMPILED_HEADER), ) - ifeq ($$(filter $$(notdir $2), $$($1_PRECOMPILED_HEADER_EXCLUDE)), ) - $1_$2_USE_PCH_FLAGS := $$($1_USE_PCH_FLAGS) + ifneq ($$($$($1_BASE)_PRECOMPILED_HEADER), ) + ifeq ($$(filter $$($1_FILENAME), $$($$($1_BASE)_PRECOMPILED_HEADER_EXCLUDE)), ) + $1_USE_PCH_FLAGS := $$($$($1_BASE)_USE_PCH_FLAGS) + endif endif - endif - ifneq ($$(filter %.c, $2), ) - # Compile as a C file - $1_$2_FLAGS := $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \ - $$($1_$(notdir $2)_OPT_CFLAGS) \ - $$($1_$(notdir $2)_CFLAGS) $$($1_$2_THIS_FILE) -c - $1_$2_COMP := $5 - $1_$2_DEP_FLAG := $(C_FLAG_DEPS) - else ifneq ($$(filter %.m, $2), ) - # Compile as an Objective-C file - $1_$2_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $4 \ - $$($1_$(notdir $2)_OPT_CFLAGS) \ - $$($1_$(notdir $2)_CFLAGS) $$($1_$2_THIS_FILE) -c - $1_$2_COMP := $5 - $1_$2_DEP_FLAG := $(C_FLAG_DEPS) - else ifneq ($$(filter %.s %.S, $2), ) - # Compile as assembler file - $1_$2_FLAGS := $8 - $1_$2_COMP := $(AS) - $1_$2_DEP_FLAG := - else ifneq ($$(filter %.cpp, $2)$$(filter %.cc, $2)$$(filter %.mm, $2), ) - # Compile as a C++ or Objective-C++ file - $1_$2_FLAGS := $(CFLAGS_CCACHE) $$($1_$2_USE_PCH_FLAGS) $6 \ - $$($1_$(notdir $2)_OPT_CXXFLAGS) \ - $$($1_$(notdir $2)_CXXFLAGS) $$($1_$2_THIS_FILE) -c - $1_$2_COMP := $7 - $1_$2_DEP_FLAG := $(CXX_FLAG_DEPS) - else - $$(error Internal error in NativeCompilation.gmk: no compiler for file $2) - endif - # Generate the .o (.obj) file name and place it in the bin dir. - $1_$2_OBJ := $3/$$(call replace_with_obj_extension, $$(notdir $2)) - # Only continue if this object file hasn't been processed already. This lets the first found - # source file override any other with the same name. - ifeq ($$(findstring $$($1_$2_OBJ), $$($1_OBJS_SO_FAR)), ) - $1_OBJS_SO_FAR += $$($1_$2_OBJ) - ifeq ($$(filter %.s %.S, $2), ) + $1_BASE_CFLAGS := $$($$($1_BASE)_CFLAGS) $$($$($1_BASE)_EXTRA_CFLAGS) \ + $$($$($1_BASE)_SYSROOT_CFLAGS) + $1_BASE_CXXFLAGS := $$($$($1_BASE)_CXXFLAGS) $$($$($1_BASE)_EXTRA_CXXFLAGS) \ + $$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS) + + ifneq ($$(filter %.c, $$($1_FILENAME)), ) + # Compile as a C file + $1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CFLAGS) \ + $$($1_OPT_CFLAGS) $$($1_CFLAGS) $$($1_THIS_FILE) -c + $1_COMPILER := $$($$($1_BASE)_CC) + $1_DEP_FLAG := $(C_FLAG_DEPS) + else ifneq ($$(filter %.m, $$($1_FILENAME)), ) + # Compile as an Objective-C file + $1_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) \ + $$($1_BASE_CFLAGS) $$($1_OPT_CFLAGS) $$($1_CFLAGS) $$($1_THIS_FILE) -c + $1_COMPILER := $$($$($1_BASE)_CC) + $1_DEP_FLAG := $(C_FLAG_DEPS) + else ifneq ($$(filter %.s %.S, $$($1_FILENAME)), ) + # Compile as assembler file + $1_FLAGS := $$($$($1_BASE)_ASFLAGS) + $1_COMPILER := $(AS) + $1_DEP_FLAG := + else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), ) + # Compile as a C++ or Objective-C++ file + $1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CXXFLAGS) \ + $$($1_OPT_CXXFLAGS) $$($1_CXXFLAGS) $$($1_THIS_FILE) -c + $1_COMPILER := $$($$($1_BASE)_CXX) + $1_DEP_FLAG := $(CXX_FLAG_DEPS) + else + $$(error Internal error in NativeCompilation.gmk: no compiler for file $$($1_FILENAME)) + endif + + ifeq ($$(filter %.s %.S, $$($1_FILENAME)), ) # And this is the dependency file for this obj file. - $1_$2_DEP := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ)) - # The dependency target file lists all dependencies as empty targets - # to avoid make error "No rule to make target" for removed files - $1_$2_DEP_TARGETS := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_$2_OBJ)) + $1_DEP := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_OBJ)) + # The dependency target file lists all dependencies as empty targets to + # avoid make error "No rule to make target" for removed files + $1_DEP_TARGETS := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_OBJ)) # Include previously generated dependency information. (if it exists) - -include $$($1_$2_DEP) - -include $$($1_$2_DEP_TARGETS) + -include $$($1_DEP) + -include $$($1_DEP_TARGETS) ifeq ($(TOOLCHAIN_TYPE), microsoft) # To avoid name clashes between pdbs for objects and libs/execs, put # object pdbs in a separate subdir. - $1_$2_DEBUG_OUT_FLAGS := -Fd$$(strip $$(patsubst $$($1_OBJECT_DIR)/%, \ - $$($1_OBJECT_DIR)/pdb/%, $$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_$2_OBJ)))) + $1_DEBUG_OUT_FLAGS := -Fd$$(strip $$(patsubst $$($$($1_BASE)_OBJECT_DIR)/%, \ + $$($$($1_BASE)_OBJECT_DIR)/pdb/%, $$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_OBJ)))) endif endif - ifneq ($$(strip $$($1_$(notdir $2)_CFLAGS) $$($1_$(notdir $2)_CXXFLAGS) \ - $$($1_$(notdir $2)_OPTIMIZATION)), ) - $1_$2_VARDEPS := $$($1_$(notdir $2)_CFLAGS) $$($1_$(notdir $2)_CXXFLAGS) \ - $$($1_$(notdir $2)_OPT_CFLAGS) $$($1_$(notdir $2)_OPT_CXXFLAGS) - $1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS, $$($1_$2_OBJ).vardeps) + ifneq ($$(strip $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)), ) + $1_VARDEPS := $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPT_CFLAGS) \ + $$($1_OPT_CXXFLAGS) + $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_OBJ).vardeps) endif - $$($1_$2_OBJ) : $2 $$($1_COMPILE_VARDEPS_FILE) $$($1_$2_VARDEPS_FILE) | $$($1_BUILD_INFO) - $$(call LogInfo, Compiling $$(notdir $2) (for $$($1_BASENAME))) + $$($1_OBJ): $$($1_SRC_FILE) $$($$($1_BASE)_COMPILE_VARDEPS_FILE) \ + $$($1_VARDEPS_FILE) | $$($$($1_BASE)_BUILD_INFO) + $$(call LogInfo, Compiling $$($1_FILENAME) (for $$($$($1_BASE)_BASENAME))) $$(call MakeDir, $$(@D) $$(@D)/pdb) ifneq ($(TOOLCHAIN_TYPE), microsoft) - ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s, $2), solstudio) - # The Solaris studio compiler doesn't output the full path to the object file in the - # generated deps files. Fixing it with sed. If compiling assembly, don't try this. + ifeq ($(TOOLCHAIN_TYPE)$$(filter %.s, $$($1_FILENAME)), solstudio) + # The Solaris studio compiler doesn't output the full path to the + # object file in the generated deps files. Fixing it with sed. If + # compiling assembly, don't try this. $$(call ExecuteWithLog, $$@, \ - $$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEP_FLAG) $$($1_$2_DEP).tmp $(CC_OUT_OPTION)$$($1_$2_OBJ) $2) - $(SED) 's|^$$(@F):|$$@:|' $$($1_$2_DEP).tmp > $$($1_$2_DEP) + $$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP).tmp \ + $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)) + $(SED) 's|^$$(@F):|$$@:|' $$($1_DEP).tmp > $$($1_DEP) else $$(call ExecuteWithLog, $$@, \ - $$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEP_FLAG) $$($1_$2_DEP) $(CC_OUT_OPTION)$$($1_$2_OBJ) $2) + $$($1_COMPILER) $$($1_FLAGS) $$($1_DEP_FLAG) $$($1_DEP) \ + $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)) endif # Create a dependency target file from the dependency file. # Solution suggested by http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ - ifneq ($$($1_$2_DEP), ) - $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS) + ifneq ($$($1_DEP), ) + $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEP) > $$($1_DEP_TARGETS) endif else - # The Visual Studio compiler lacks a feature for generating make dependencies, but by - # setting -showIncludes, all included files are printed. These are filtered out and - # parsed into make dependences. - # Keep as much as possible on one execution line for best performance on Windows. - # No need to save exit code from compilation since pipefail is always active on - # Windows. + # The Visual Studio compiler lacks a feature for generating make + # dependencies, but by setting -showIncludes, all included files are + # printed. These are filtered out and parsed into make dependences. + # + # Keep as much as possible on one execution line for best performance + # on Windows. No need to save exit code from compilation since + # pipefail is always active on Windows. $$(call ExecuteWithLog, $$@, \ - $$($1_$2_COMP) $$($1_$2_FLAGS) -showIncludes $$($1_$2_DEBUG_OUT_FLAGS) \ - $(CC_OUT_OPTION)$$($1_$2_OBJ) $2) \ - | $(GREP) -v -e "^Note: including file:" \ - -e "^$(notdir $2)$$$$" || test "$$$$?" = "1" ; \ - $(ECHO) $$@: \\ > $$($1_$2_DEP) ; \ - $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_$2_OBJ).log \ - | $(SORT) -u >> $$($1_$2_DEP) ; \ - $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_$2_DEP) > $$($1_$2_DEP_TARGETS) + $$($1_COMPILER) $$($1_FLAGS) -showIncludes $$($1_DEBUG_OUT_FLAGS) \ + $(CC_OUT_OPTION)$$($1_OBJ) $$($1_SRC_FILE)) \ + | $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \ + -e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \ + $(ECHO) $$@: \\ > $$($1_DEP) ; \ + $(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_OBJ).log \ + | $(SORT) -u >> $$($1_DEP) ; \ + $(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEP) > $$($1_DEP_TARGETS) endif endif endef @@ -379,7 +396,6 @@ # ZIP_EXTERNAL_DEBUG_SYMBOLS Set to false to override global setting of debug symbol # zipping # CFLAGS_DEBUG_SYMBOLS Overrides the default cflags for enabling debug symbols -# CXXFLAGS_DEBUG_SYMBOLS Overrides the default cxxflags for enabling debug symbols # STRIPFLAGS Optionally change the flags given to the strip command # PRECOMPILED_HEADER Header file to use as precompiled header # PRECOMPILED_HEADER_EXCLUDE List of source files that should not use PCH @@ -560,9 +576,8 @@ ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true) $$(call SetIfEmpty, $1_CFLAGS_DEBUG_SYMBOLS, $(CFLAGS_DEBUG_SYMBOLS)) - $$(call SetIfEmpty, $1_CXXFLAGS_DEBUG_SYMBOLS, $(CXXFLAGS_DEBUG_SYMBOLS)) $1_EXTRA_CFLAGS += $$($1_CFLAGS_DEBUG_SYMBOLS) - $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_DEBUG_SYMBOLS) + $1_EXTRA_CXXFLAGS += $$($1_CFLAGS_DEBUG_SYMBOLS) endif ifneq ($$($1_REORDER), ) @@ -641,11 +656,12 @@ $1_GENERATED_PCH_SRC := $$($1_OBJECT_DIR)/$1_pch.cpp $1_GENERATED_PCH_OBJ := $$($1_OBJECT_DIR)/$1_pch.obj - $$(eval $$(call add_native_source,$1,$$($1_GENERATED_PCH_SRC), \ - $$($1_OBJECT_DIR),,, \ - $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_SYSROOT_CFLAGS) \ - -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \ - $$($1_CXX),,no_this_file)) + $$(eval $$(call SetupCompileNativeFile, $1_$$(notdir $$($1_GENERATED_PCH_SRC)), \ + FILE := $$($1_GENERATED_PCH_SRC), \ + BASE := $1, \ + EXTRA_CXXFLAGS := -Fp$$($1_PCH_FILE) -Yc$$(notdir $$($1_PRECOMPILED_HEADER)), \ + DISABLE_THIS_FILE_DEFINE := true, \ + )) $1_USE_PCH_FLAGS := \ -Fp$$($1_PCH_FILE) -Yu$$(notdir $$($1_PRECOMPILED_HEADER)) @@ -688,13 +704,13 @@ endif endif - # Now call add_native_source for each source file we are going to compile. - $$(foreach p, $$($1_SRCS), \ - $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \ - $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS), \ - $$($1_CC), \ - $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS) $$($1_SYSROOT_CFLAGS), \ - $$($1_CXX), $$($1_ASFLAGS)))) + # Now call SetupCompileNativeFile for each source file we are going to compile. + $$(foreach file, $$($1_SRCS), \ + $$(eval $$(call SetupCompileNativeFile, $1_$$(notdir $$(file)),\ + FILE := $$(file), \ + BASE := $1, \ + )) \ + ) # Setup rule for printing progress info when compiling source files. # This is a rough heuristic and may not always print accurate information.
--- a/make/common/TestFilesCompilation.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/common/TestFilesCompilation.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -59,13 +59,13 @@ ifeq ($$($1_TYPE), LIBRARY) $1_PREFIX = lib $1_OUTPUT_SUBDIR := lib - $1_CFLAGS := $(CFLAGS_TESTLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) + $1_CFLAGS := $(CFLAGS_TESTLIB) $1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN) $1_COMPILATION_TYPE := LIBRARY else ifeq ($$($1_TYPE), PROGRAM) $1_PREFIX = exe $1_OUTPUT_SUBDIR := bin - $1_CFLAGS := $(CFLAGS_TESTEXE) $(CFLAGS_WARNINGS_ARE_ERRORS) + $1_CFLAGS := $(CFLAGS_TESTEXE) $1_LDFLAGS := $(LDFLAGS_TESTEXE) $1_COMPILATION_TYPE := EXECUTABLE else
--- a/make/conf/jib-profiles.js Thu Mar 08 14:31:54 2018 +0530 +++ b/make/conf/jib-profiles.js Thu Mar 08 10:18:28 2018 -0800 @@ -743,11 +743,22 @@ dependencies: [ "devkit" ], environment_path: input.get("devkit", "install_path") + "/Xcode.app/Contents/Developer/usr/bin" - } + }; profiles["run-test"] = concatObjects(profiles["run-test"], macosxRunTestExtra); profiles["run-test-jprt"] = concatObjects(profiles["run-test-jprt"], macosxRunTestExtra); profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"], macosxRunTestExtra); } + // On windows we want the debug symbols available at test time + if (input.build_os == "windows") { + windowsRunTestPrebuiltExtra = { + dependencies: [ testedProfile + ".jdk_symbols" ], + environment: { + "PRODUCT_SYMBOLS_HOME": input.get(testedProfile + ".jdk_symbols", "home_path"), + } + }; + profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"], + windowsRunTestPrebuiltExtra); + } // Generate the missing platform attributes profiles = generatePlatformAttributes(profiles);
--- a/make/data/x11wrappergen/functions.txt Thu Mar 08 14:31:54 2018 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -!XGetWindowProperty|int - w long - property Atom - long_offset long - long_length long - delete Bool - req_type Atom - actual_type Atom out - actual_format int out - number_of_items long out - bytes_after long out - data pointer out free -!XQueryTree|int - w long - root long out - parent long out - children pointer out free - nchildren int out -!XTranslateCoordinates|int - scr_w long - dest_w long - src_x int - src_y int - dest_x int out - dest_y int out - child long out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/data/x11wrappergen/sizes-32.txt Thu Mar 08 10:18:28 2018 -0800 @@ -0,0 +1,1017 @@ +Atom 4 +AwtGraphicsConfigData 128 +AwtGraphicsConfigData.awt_cmap 4 +AwtGraphicsConfigData.AwtColorMatch 56 +AwtGraphicsConfigData.awt_depth 0 +AwtGraphicsConfigData.awtImage 52 +AwtGraphicsConfigData.awt_num_colors 48 +AwtGraphicsConfigData.awt_visInfo 8 +AwtGraphicsConfigData.color_data 84 +AwtGraphicsConfigData.glxInfo 88 +AwtGraphicsConfigData.isTranslucencySupported 92 +AwtGraphicsConfigData.monoImage 60 +AwtGraphicsConfigData.monoPixmap 64 +AwtGraphicsConfigData.monoPixmapGC 76 +AwtGraphicsConfigData.monoPixmapHeight 72 +AwtGraphicsConfigData.monoPixmapWidth 68 +AwtGraphicsConfigData.pixelStride 80 +AwtGraphicsConfigData.renderPictFormat 96 +awtImageData 304 +awtImageData.clrdata 16 +awtImageData.convert 48 +awtImageData.Depth 0 +awtImageData.wsImageFormat 4 +AwtScreenData 24 +AwtScreenData.blackpixel 12 +AwtScreenData.configs 20 +AwtScreenData.defaultConfig 16 +AwtScreenData.numConfigs 0 +AwtScreenData.root 4 +AwtScreenData.whitepixel 8 +Bool 4 +ColorData 48 +ColorData.awt_Colors 0 +ColorData.awt_icmLUT2Colors 12 +ColorData.awt_icmLUT 8 +ColorData.awt_numICMcolors 4 +ColorData.img_clr_tbl 20 +ColorData.img_grays 16 +ColorData.img_oda_blue 32 +ColorData.img_oda_green 28 +ColorData.img_oda_red 24 +ColorData.pGrayInverseLutData 36 +ColorData.representsPrimaries 44 +ColorData.screendata 40 +ColorEntry 4 +ColorEntry.b 2 +ColorEntry.flags 3 +ColorEntry.g 1 +ColorEntry.r 0 +Depth 12 +Depth.depth 0 +Depth.nvisuals 4 +Depth.visuals 8 +int 4 +long 4 +PropMwmHints 20 +PropMwmHints.decorations 8 +PropMwmHints.flags 0 +PropMwmHints.functions 4 +PropMwmHints.inputMode 12 +PropMwmHints.status 16 +ptr 4 +Screen 80 +Screen.backing_store 68 +Screen.black_pixel 56 +Screen.cmap 48 +Screen.default_gc 44 +Screen.depths 32 +Screen.display 4 +Screen.ext_data 0 +ScreenFormat 16 +ScreenFormat.bits_per_pixel 8 +ScreenFormat.depth 4 +ScreenFormat.ext_data 0 +ScreenFormat.scanline_pad 12 +Screen.height 16 +Screen.max_maps 60 +Screen.mheight 24 +Screen.min_maps 64 +Screen.mwidth 20 +Screen.ndepths 28 +Screen.root 8 +Screen.root_depth 36 +Screen.root_input_mask 76 +Screen.root_visual 40 +Screen.save_unders 72 +Screen.white_pixel 52 +Screen.width 12 +short 2 +Visual 32 +Visual.bits_per_rgb 24 +Visual.blue_mask 20 +Visual.class 8 +Visual.ext_data 0 +Visual.green_mask 16 +Visual.map_entries 28 +Visual.red_mask 12 +Visual.visualid 4 +Window 4 +XAnyEvent 20 +XAnyEvent.display 12 +XAnyEvent.send_event 8 +XAnyEvent.serial 4 +XAnyEvent.type 0 +XAnyEvent.window 16 +XArc 12 +XArc.angle1 8 +XArc.angle2 10 +XArc.height 6 +XArc.width 4 +XArc.x 0 +XArc.y 2 +XButtonEvent 60 +XButtonEvent.button 52 +XButtonEvent.display 12 +XButtonEvent.root 20 +XButtonEvent.same_screen 56 +XButtonEvent.send_event 8 +XButtonEvent.serial 4 +XButtonEvent.state 48 +XButtonEvent.subwindow 24 +XButtonEvent.time 28 +XButtonEvent.type 0 +XButtonEvent.window 16 +XButtonEvent.x 32 +XButtonEvent.x_root 40 +XButtonEvent.y 36 +XButtonEvent.y_root 44 +XChar2b 2 +XChar2b.byte1 0 +XChar2b.byte2 1 +XCharStruct 12 +XCharStruct.ascent 6 +XCharStruct.attributes 10 +XCharStruct.descent 8 +XCharStruct.lbearing 0 +XCharStruct.rbearing 2 +XCharStruct.width 4 +XCirculateEvent 28 +XCirculateEvent.display 12 +XCirculateEvent.event 16 +XCirculateEvent.place 24 +XCirculateEvent.send_event 8 +XCirculateEvent.serial 4 +XCirculateEvent.type 0 +XCirculateEvent.window 20 +XCirculateRequestEvent 28 +XCirculateRequestEvent.display 12 +XCirculateRequestEvent.parent 16 +XCirculateRequestEvent.place 24 +XCirculateRequestEvent.send_event 8 +XCirculateRequestEvent.serial 4 +XCirculateRequestEvent.type 0 +XCirculateRequestEvent.window 20 +XClassHint 8 +XClassHint.res_class 4 +XClassHint.res_name 0 +XClientMessageEvent 48 +XClientMessageEvent.data 28 +XClientMessageEvent.display 12 +XClientMessageEvent.format 24 +XClientMessageEvent.message_type 20 +XClientMessageEvent.send_event 8 +XClientMessageEvent.serial 4 +XClientMessageEvent.type 0 +XClientMessageEvent.window 16 +XColor 12 +XColor.blue 8 +XColor.flags 10 +XColor.green 6 +XColormapEvent 32 +XColormapEvent.colormap 20 +XColormapEvent.display 12 +XColormapEvent.new 24 +XColormapEvent.send_event 8 +XColormapEvent.serial 4 +XColormapEvent.state 28 +XColormapEvent.type 0 +XColormapEvent.window 16 +XColor.pad 11 +XColor.pixel 0 +XColor.red 4 +XComposeStatus 8 +XComposeStatus.chars_matched 4 +XComposeStatus.compose_ptr 0 +XConfigureEvent 52 +XConfigureEvent.above 44 +XConfigureEvent.border_width 40 +XConfigureEvent.display 12 +XConfigureEvent.event 16 +XConfigureEvent.height 36 +XConfigureEvent.override_redirect 48 +XConfigureEvent.send_event 8 +XConfigureEvent.serial 4 +XConfigureEvent.type 0 +XConfigureEvent.width 32 +XConfigureEvent.window 20 +XConfigureEvent.x 24 +XConfigureEvent.y 28 +XConfigureRequestEvent 56 +XConfigureRequestEvent.above 44 +XConfigureRequestEvent.border_width 40 +XConfigureRequestEvent.detail 48 +XConfigureRequestEvent.display 12 +XConfigureRequestEvent.height 36 +XConfigureRequestEvent.parent 16 +XConfigureRequestEvent.send_event 8 +XConfigureRequestEvent.serial 4 +XConfigureRequestEvent.type 0 +XConfigureRequestEvent.value_mask 52 +XConfigureRequestEvent.width 32 +XConfigureRequestEvent.window 20 +XConfigureRequestEvent.x 24 +XConfigureRequestEvent.y 28 +XCreateWindowEvent 48 +XCreateWindowEvent.border_width 40 +XCreateWindowEvent.display 12 +XCreateWindowEvent.height 36 +XCreateWindowEvent.override_redirect 44 +XCreateWindowEvent.parent 16 +XCreateWindowEvent.send_event 8 +XCreateWindowEvent.serial 4 +XCreateWindowEvent.type 0 +XCreateWindowEvent.width 32 +XCreateWindowEvent.window 20 +XCreateWindowEvent.x 24 +XCreateWindowEvent.y 28 +XCrossingEvent 68 +XCrossingEvent.detail 52 +XCrossingEvent.display 12 +XCrossingEvent.focus 60 +XCrossingEvent.mode 48 +XCrossingEvent.root 20 +XCrossingEvent.same_screen 56 +XCrossingEvent.send_event 8 +XCrossingEvent.serial 4 +XCrossingEvent.state 64 +XCrossingEvent.subwindow 24 +XCrossingEvent.time 28 +XCrossingEvent.type 0 +XCrossingEvent.window 16 +XCrossingEvent.x 32 +XCrossingEvent.x_root 40 +XCrossingEvent.y 36 +XCrossingEvent.y_root 44 +XdbeSwapInfo 8 +XdbeSwapInfo.swap_action 4 +XdbeSwapInfo.swap_window 0 +XDestroyWindowEvent 24 +XDestroyWindowEvent.display 12 +XDestroyWindowEvent.event 16 +XDestroyWindowEvent.send_event 8 +XDestroyWindowEvent.serial 4 +XDestroyWindowEvent.type 0 +XDestroyWindowEvent.window 20 +XErrorEvent 20 +XErrorEvent.display 4 +XErrorEvent.error_code 16 +XErrorEvent.minor_code 18 +XErrorEvent.request_code 17 +XErrorEvent.resourceid 8 +XErrorEvent.serial 12 +XErrorEvent.type 0 +XEvent 96 +XEvent.pad 0 +XEvent.type 0 +XEvent.xany 0 +XEvent.xbutton 0 +XEvent.xcirculate 0 +XEvent.xcirculaterequest 0 +XEvent.xclient 0 +XEvent.xcolormap 0 +XEvent.xconfigure 0 +XEvent.xconfigurerequest 0 +XEvent.xcreatewindow 0 +XEvent.xcrossing 0 +XEvent.xdestroywindow 0 +XEvent.xerror 0 +XEvent.xexpose 0 +XEvent.xfocus 0 +XEvent.xgraphicsexpose 0 +XEvent.xgravity 0 +XEvent.xkey 0 +XEvent.xkeymap 0 +XEvent.xmap 0 +XEvent.xmapping 0 +XEvent.xmaprequest 0 +XEvent.xmotion 0 +XEvent.xnoexpose 0 +XEvent.xproperty 0 +XEvent.xreparent 0 +XEvent.xresizerequest 0 +XEvent.xselection 0 +XEvent.xselectionclear 0 +XEvent.xselectionrequest 0 +XEvent.xunmap 0 +XEvent.xvisibility 0 +XExposeEvent 40 +XExposeEvent.count 36 +XExposeEvent.display 12 +XExposeEvent.height 32 +XExposeEvent.send_event 8 +XExposeEvent.serial 4 +XExposeEvent.type 0 +XExposeEvent.width 28 +XExposeEvent.window 16 +XExposeEvent.x 20 +XExposeEvent.y 24 +XExtCodes 16 +XExtCodes.extension 0 +XExtCodes.first_error 12 +XExtCodes.first_event 8 +XExtCodes.major_opcode 4 +XExtData 16 +XExtData.free_private 8 +XExtData.next 4 +XExtData.number 0 +XExtData.private_data 12 +XFocusChangeEvent 28 +XFocusChangeEvent.detail 24 +XFocusChangeEvent.display 12 +XFocusChangeEvent.mode 20 +XFocusChangeEvent.send_event 8 +XFocusChangeEvent.serial 4 +XFocusChangeEvent.type 0 +XFocusChangeEvent.window 16 +XFontProp 8 +XFontProp.card32 4 +XFontProp.name 0 +XFontSetExtents 16 +XFontSetExtents.max_ink_extent 0 +XFontSetExtents.max_logical_extent 8 +XFontStruct 80 +XFontStruct.all_chars_exist 28 +XFontStruct.ascent 72 +XFontStruct.descent 76 +XFontStruct.direction 8 +XFontStruct.ext_data 0 +XFontStruct.fid 4 +XFontStruct.max_bounds 56 +XFontStruct.max_byte1 24 +XFontStruct.max_char_or_byte2 16 +XFontStruct.min_bounds 44 +XFontStruct.min_byte1 20 +XFontStruct.min_char_or_byte2 12 +XFontStruct.n_properties 36 +XFontStruct.per_char 68 +XFontStruct.properties 40 +XGCValues 92 +XGCValues.arc_mode 40 +XGCValues.background 12 +XGCValues.cap_style 24 +XGCValues.clip_mask 80 +XGCValues.clip_x_origin 72 +XGCValues.clip_y_origin 76 +XGCValues.dashes 88 +XGCValues.dash_offset 84 +XGCValues.fill_rule 36 +XGCValues.fill_style 32 +XGCValues.font 60 +XGCValues.foreground 8 +XGCValues.function 0 +XGCValues.graphics_exposures 68 +XGCValues.join_style 28 +XGCValues.line_style 20 +XGCValues.line_width 16 +XGCValues.plane_mask 4 +XGCValues.stipple 48 +XGCValues.subwindow_mode 64 +XGCValues.tile 44 +XGCValues.ts_x_origin 52 +XGCValues.ts_y_origin 56 +XGraphicsExposeEvent 48 +XGraphicsExposeEvent.count 36 +XGraphicsExposeEvent.display 12 +XGraphicsExposeEvent.drawable 16 +XGraphicsExposeEvent.height 32 +XGraphicsExposeEvent.major_code 40 +XGraphicsExposeEvent.minor_code 44 +XGraphicsExposeEvent.send_event 8 +XGraphicsExposeEvent.serial 4 +XGraphicsExposeEvent.type 0 +XGraphicsExposeEvent.width 28 +XGraphicsExposeEvent.x 20 +XGraphicsExposeEvent.y 24 +XGravityEvent 32 +XGravityEvent.display 12 +XGravityEvent.event 16 +XGravityEvent.send_event 8 +XGravityEvent.serial 4 +XGravityEvent.type 0 +XGravityEvent.window 20 +XGravityEvent.x 24 +XGravityEvent.y 28 +XHostAddress 12 +XHostAddress.address 8 +XHostAddress.family 0 +XHostAddress.length 4 +XIconSize 24 +XIconSize.height_inc 20 +XIconSize.max_height 12 +XIconSize.max_width 8 +XIconSize.min_height 4 +XIconSize.min_width 0 +XIconSize.width_inc 16 +XImage 88 +XImage.bitmap_bit_order 28 +XImage.bitmap_pad 32 +XImage.bitmap_unit 24 +XImage.bits_per_pixel 44 +XImage.blue_mask 56 +XImage.byte_order 20 +XImage.bytes_per_line 40 +XImage.data 16 +XImage.depth 36 +XImage.f.add_pixel 84 +XImage.f.create_image 64 +XImage.f.destroy_image 68 +XImage.f.get_pixel 72 +XImage.format 12 +XImage.f.put_pixel 76 +XImage.f.sub_image 80 +XImage.green_mask 52 +XImage.height 4 +XImage.obdata 60 +XImage.red_mask 48 +XImage.width 0 +XImage.xoffset 8 +XIMCallback 8 +XIMCallback.callback 4 +XIMCallback.client_data 0 +XIMHotKeyTrigger 12 +XIMHotKeyTrigger.keysym 0 +XIMHotKeyTrigger.modifier 4 +XIMHotKeyTrigger.modifier_mask 8 +XIMHotKeyTriggers 8 +XIMHotKeyTriggers.key 4 +XIMHotKeyTriggers.num_hot_key 0 +XIMPreeditCaretCallbackStruct 12 +XIMPreeditCaretCallbackStruct.direction 4 +XIMPreeditCaretCallbackStruct.position 0 +XIMPreeditCaretCallbackStruct.style 8 +XIMPreeditDrawCallbackStruct 16 +XIMPreeditDrawCallbackStruct.caret 0 +XIMPreeditDrawCallbackStruct.chg_first 4 +XIMPreeditDrawCallbackStruct.chg_length 8 +XIMPreeditDrawCallbackStruct.text 12 +XIMPreeditStateNotifyCallbackStruct 4 +XIMPreeditStateNotifyCallbackStruct.state 0 +XIMStatusDrawCallbackStruct 8 +XIMStatusDrawCallbackStruct.data 4 +XIMStatusDrawCallbackStruct.type 0 +XIMStringConversionCallbackStruct 16 +XIMStringConversionCallbackStruct.direction 4 +XIMStringConversionCallbackStruct.factor 10 +XIMStringConversionCallbackStruct.operation 8 +XIMStringConversionCallbackStruct.position 0 +XIMStringConversionCallbackStruct.text 12 +XIMStringConversionText 16 +XIMStringConversionText.encoding_is_wchar 8 +XIMStringConversionText.feedback 4 +XIMStringConversionText.length 0 +XIMStringConversionText.string 12 +XIMStyles 8 +XIMStyles.count_styles 0 +XIMStyles.supported_styles 4 +XIMText 16 +XIMText.encoding_is_wchar 8 +XIMText.feedback 4 +XIMText.length 0 +XIMText.string 12 +XIMValuesList 8 +XIMValuesList.count_values 0 +XIMValuesList.supported_values 4 +XkbAccessXNotifyEvent 44 +XkbAccessXNotifyEvent.debounce_delay 40 +XkbAccessXNotifyEvent.detail 28 +XkbAccessXNotifyEvent.device 24 +XkbAccessXNotifyEvent.display 12 +XkbAccessXNotifyEvent.keycode 32 +XkbAccessXNotifyEvent.send_event 8 +XkbAccessXNotifyEvent.serial 4 +XkbAccessXNotifyEvent.sk_delay 36 +XkbAccessXNotifyEvent.time 16 +XkbAccessXNotifyEvent.type 0 +XkbAccessXNotifyEvent.xkb_type 20 +XkbActionMessageEvent 56 +XkbActionMessageEvent.device 24 +XkbActionMessageEvent.display 12 +XkbActionMessageEvent.group 40 +XkbActionMessageEvent.keycode 28 +XkbActionMessageEvent.key_event_follows 36 +XkbActionMessageEvent.message 48 +XkbActionMessageEvent.mods 44 +XkbActionMessageEvent.press 32 +XkbActionMessageEvent.send_event 8 +XkbActionMessageEvent.serial 4 +XkbActionMessageEvent.time 16 +XkbActionMessageEvent.type 0 +XkbActionMessageEvent.xkb_type 20 +XkbAnyEvent 28 +XkbAnyEvent.device 24 +XkbAnyEvent.display 12 +XkbAnyEvent.send_event 8 +XkbAnyEvent.serial 4 +XkbAnyEvent.time 16 +XkbAnyEvent.type 0 +XkbAnyEvent.xkb_type 20 +XkbBellNotifyEvent 60 +XkbBellNotifyEvent.bell_class 40 +XkbBellNotifyEvent.bell_id 44 +XkbBellNotifyEvent.device 24 +XkbBellNotifyEvent.display 12 +XkbBellNotifyEvent.duration 36 +XkbBellNotifyEvent.event_only 56 +XkbBellNotifyEvent.name 48 +XkbBellNotifyEvent.percent 28 +XkbBellNotifyEvent.pitch 32 +XkbBellNotifyEvent.send_event 8 +XkbBellNotifyEvent.serial 4 +XkbBellNotifyEvent.time 16 +XkbBellNotifyEvent.type 0 +XkbBellNotifyEvent.window 52 +XkbBellNotifyEvent.xkb_type 20 +XkbCompatMapNotifyEvent 44 +XkbCompatMapNotifyEvent.changed_groups 28 +XkbCompatMapNotifyEvent.device 24 +XkbCompatMapNotifyEvent.display 12 +XkbCompatMapNotifyEvent.first_si 32 +XkbCompatMapNotifyEvent.num_si 36 +XkbCompatMapNotifyEvent.num_total_si 40 +XkbCompatMapNotifyEvent.send_event 8 +XkbCompatMapNotifyEvent.serial 4 +XkbCompatMapNotifyEvent.time 16 +XkbCompatMapNotifyEvent.type 0 +XkbCompatMapNotifyEvent.xkb_type 20 +XkbControlsNotifyEvent 48 +XkbControlsNotifyEvent.changed_ctrls 28 +XkbControlsNotifyEvent.device 24 +XkbControlsNotifyEvent.display 12 +XkbControlsNotifyEvent.enabled_ctrl_changes 36 +XkbControlsNotifyEvent.enabled_ctrls 32 +XkbControlsNotifyEvent.event_type 45 +XkbControlsNotifyEvent.keycode 44 +XkbControlsNotifyEvent.num_groups 40 +XkbControlsNotifyEvent.req_major 46 +XkbControlsNotifyEvent.req_minor 47 +XkbControlsNotifyEvent.send_event 8 +XkbControlsNotifyEvent.serial 4 +XkbControlsNotifyEvent.time 16 +XkbControlsNotifyEvent.type 0 +XkbControlsNotifyEvent.xkb_type 20 +XkbEvent 96 +XkbEvent.accessx 0 +XkbEvent.any 0 +XkbEvent.bell 0 +XkbEvent.compat 0 +XkbEvent.core 0 +XkbEvent.ctrls 0 +XkbEvent.device 0 +XkbEvent.indicators 0 +XkbEvent.map 0 +XkbEvent.message 0 +XkbEvent.names 0 +XkbEvent.new_kbd 0 +XkbEvent.state 0 +XkbEvent.type 0 +XkbExtensionDeviceNotifyEvent 64 +XkbExtensionDeviceNotifyEvent.device 24 +XkbExtensionDeviceNotifyEvent.display 12 +XkbExtensionDeviceNotifyEvent.first_btn 40 +XkbExtensionDeviceNotifyEvent.led_class 56 +XkbExtensionDeviceNotifyEvent.led_id 60 +XkbExtensionDeviceNotifyEvent.leds_defined 48 +XkbExtensionDeviceNotifyEvent.led_state 52 +XkbExtensionDeviceNotifyEvent.num_btns 44 +XkbExtensionDeviceNotifyEvent.reason 28 +XkbExtensionDeviceNotifyEvent.send_event 8 +XkbExtensionDeviceNotifyEvent.serial 4 +XkbExtensionDeviceNotifyEvent.supported 32 +XkbExtensionDeviceNotifyEvent.time 16 +XkbExtensionDeviceNotifyEvent.type 0 +XkbExtensionDeviceNotifyEvent.unsupported 36 +XkbExtensionDeviceNotifyEvent.xkb_type 20 +XkbIndicatorNotifyEvent 36 +XkbIndicatorNotifyEvent.changed 28 +XkbIndicatorNotifyEvent.device 24 +XkbIndicatorNotifyEvent.display 12 +XkbIndicatorNotifyEvent.send_event 8 +XkbIndicatorNotifyEvent.serial 4 +XkbIndicatorNotifyEvent.state 32 +XkbIndicatorNotifyEvent.time 16 +XkbIndicatorNotifyEvent.type 0 +XkbIndicatorNotifyEvent.xkb_type 20 +XkbMapNotifyEvent 80 +XkbMapNotifyEvent.changed 28 +XkbMapNotifyEvent.device 24 +XkbMapNotifyEvent.display 12 +XkbMapNotifyEvent.first_key_act 47 +XkbMapNotifyEvent.first_key_behavior 48 +XkbMapNotifyEvent.first_key_explicit 49 +XkbMapNotifyEvent.first_key_sym 46 +XkbMapNotifyEvent.first_modmap_key 50 +XkbMapNotifyEvent.first_type 36 +XkbMapNotifyEvent.first_vmodmap_key 51 +XkbMapNotifyEvent.flags 32 +XkbMapNotifyEvent.max_key_code 45 +XkbMapNotifyEvent.min_key_code 44 +XkbMapNotifyEvent.num_key_acts 56 +XkbMapNotifyEvent.num_key_behaviors 60 +XkbMapNotifyEvent.num_key_explicit 64 +XkbMapNotifyEvent.num_key_syms 52 +XkbMapNotifyEvent.num_modmap_keys 68 +XkbMapNotifyEvent.num_types 40 +XkbMapNotifyEvent.num_vmodmap_keys 72 +XkbMapNotifyEvent.send_event 8 +XkbMapNotifyEvent.serial 4 +XkbMapNotifyEvent.time 16 +XkbMapNotifyEvent.type 0 +XkbMapNotifyEvent.vmods 76 +XkbMapNotifyEvent.xkb_type 20 +XkbNamesNotifyEvent 76 +XkbNamesNotifyEvent.changed 28 +XkbNamesNotifyEvent.changed_groups 60 +XkbNamesNotifyEvent.changed_indicators 64 +XkbNamesNotifyEvent.changed_vmods 56 +XkbNamesNotifyEvent.device 24 +XkbNamesNotifyEvent.display 12 +XkbNamesNotifyEvent.first_key 68 +XkbNamesNotifyEvent.first_lvl 40 +XkbNamesNotifyEvent.first_type 32 +XkbNamesNotifyEvent.num_aliases 48 +XkbNamesNotifyEvent.num_keys 72 +XkbNamesNotifyEvent.num_lvls 44 +XkbNamesNotifyEvent.num_radio_groups 52 +XkbNamesNotifyEvent.num_types 36 +XkbNamesNotifyEvent.send_event 8 +XkbNamesNotifyEvent.serial 4 +XkbNamesNotifyEvent.time 16 +XkbNamesNotifyEvent.type 0 +XkbNamesNotifyEvent.xkb_type 20 +XkbNewKeyboardNotifyEvent 56 +XkbNewKeyboardNotifyEvent.changed 48 +XkbNewKeyboardNotifyEvent.device 24 +XkbNewKeyboardNotifyEvent.display 12 +XkbNewKeyboardNotifyEvent.max_key_code 36 +XkbNewKeyboardNotifyEvent.min_key_code 32 +XkbNewKeyboardNotifyEvent.old_device 28 +XkbNewKeyboardNotifyEvent.old_max_key_code 44 +XkbNewKeyboardNotifyEvent.old_min_key_code 40 +XkbNewKeyboardNotifyEvent.req_major 52 +XkbNewKeyboardNotifyEvent.req_minor 53 +XkbNewKeyboardNotifyEvent.send_event 8 +XkbNewKeyboardNotifyEvent.serial 4 +XkbNewKeyboardNotifyEvent.time 16 +XkbNewKeyboardNotifyEvent.type 0 +XkbNewKeyboardNotifyEvent.xkb_type 20 +XkbStateNotifyEvent 80 +XkbStateNotifyEvent.base_group 36 +XkbStateNotifyEvent.base_mods 52 +XkbStateNotifyEvent.changed 28 +XkbStateNotifyEvent.compat_grab_mods 69 +XkbStateNotifyEvent.compat_lookup_mods 71 +XkbStateNotifyEvent.compat_state 64 +XkbStateNotifyEvent.device 24 +XkbStateNotifyEvent.display 12 +XkbStateNotifyEvent.event_type 77 +XkbStateNotifyEvent.grab_mods 68 +XkbStateNotifyEvent.group 32 +XkbStateNotifyEvent.keycode 76 +XkbStateNotifyEvent.latched_group 40 +XkbStateNotifyEvent.latched_mods 56 +XkbStateNotifyEvent.locked_group 44 +XkbStateNotifyEvent.locked_mods 60 +XkbStateNotifyEvent.lookup_mods 70 +XkbStateNotifyEvent.mods 48 +XkbStateNotifyEvent.ptr_buttons 72 +XkbStateNotifyEvent.req_major 78 +XkbStateNotifyEvent.req_minor 79 +XkbStateNotifyEvent.send_event 8 +XkbStateNotifyEvent.serial 4 +XkbStateNotifyEvent.time 16 +XkbStateNotifyEvent.type 0 +XkbStateNotifyEvent.xkb_type 20 +XKeyboardControl 32 +XKeyboardControl.auto_repeat_mode 28 +XKeyboardControl.bell_duration 12 +XKeyboardControl.bell_percent 4 +XKeyboardControl.bell_pitch 8 +XKeyboardControl.key 24 +XKeyboardControl.key_click_percent 0 +XKeyboardControl.led 16 +XKeyboardControl.led_mode 20 +XKeyboardState 56 +XKeyboardState.auto_repeats 24 +XKeyboardState.bell_duration 12 +XKeyboardState.bell_percent 4 +XKeyboardState.bell_pitch 8 +XKeyboardState.global_auto_repeat 20 +XKeyboardState.key_click_percent 0 +XKeyboardState.led_mask 16 +XKeyEvent 60 +XKeyEvent.display 12 +XKeyEvent.keycode 52 +XKeyEvent.root 20 +XKeyEvent.same_screen 56 +XKeyEvent.send_event 8 +XKeyEvent.serial 4 +XKeyEvent.state 48 +XKeyEvent.subwindow 24 +XKeyEvent.time 28 +XKeyEvent.type 0 +XKeyEvent.window 16 +XKeyEvent.x 32 +XKeyEvent.x_root 40 +XKeyEvent.y 36 +XKeyEvent.y_root 44 +XKeymapEvent 52 +XKeymapEvent.display 12 +XKeymapEvent.key_vector 20 +XKeymapEvent.send_event 8 +XKeymapEvent.serial 4 +XKeymapEvent.type 0 +XKeymapEvent.window 16 +XMapEvent 28 +XMapEvent.display 12 +XMapEvent.event 16 +XMapEvent.override_redirect 24 +XMapEvent.send_event 8 +XMapEvent.serial 4 +XMapEvent.type 0 +XMapEvent.window 20 +XMappingEvent 32 +XMappingEvent.count 28 +XMappingEvent.display 12 +XMappingEvent.first_keycode 24 +XMappingEvent.request 20 +XMappingEvent.send_event 8 +XMappingEvent.serial 4 +XMappingEvent.type 0 +XMappingEvent.window 16 +XMapRequestEvent 24 +XMapRequestEvent.display 12 +XMapRequestEvent.parent 16 +XMapRequestEvent.send_event 8 +XMapRequestEvent.serial 4 +XMapRequestEvent.type 0 +XMapRequestEvent.window 20 +XmbTextItem 16 +XmbTextItem.chars 0 +XmbTextItem.delta 8 +XmbTextItem.font_set 12 +XmbTextItem.nchars 4 +XModifierKeymap 8 +XModifierKeymap.max_keypermod 0 +XModifierKeymap.modifiermap 4 +XMotionEvent 60 +XMotionEvent.display 12 +XMotionEvent.is_hint 52 +XMotionEvent.root 20 +XMotionEvent.same_screen 56 +XMotionEvent.send_event 8 +XMotionEvent.serial 4 +XMotionEvent.state 48 +XMotionEvent.subwindow 24 +XMotionEvent.time 28 +XMotionEvent.type 0 +XMotionEvent.window 16 +XMotionEvent.x 32 +XMotionEvent.x_root 40 +XMotionEvent.y 36 +XMotionEvent.y_root 44 +XNoExposeEvent 28 +XNoExposeEvent.display 12 +XNoExposeEvent.drawable 16 +XNoExposeEvent.major_code 20 +XNoExposeEvent.minor_code 24 +XNoExposeEvent.send_event 8 +XNoExposeEvent.serial 4 +XNoExposeEvent.type 0 +XOMCharSetList 8 +XOMCharSetList.charset_count 0 +XOMCharSetList.charset_list 4 +XOMFontInfo 12 +XOMFontInfo.font_name_list 8 +XOMFontInfo.font_struct_list 4 +XOMFontInfo.num_font 0 +XOMOrientation 8 +XOMOrientation.num_orientation 0 +XOMOrientation.orientation 4 +XPixmapFormatValues 12 +XPixmapFormatValues.bits_per_pixel 4 +XPixmapFormatValues.depth 0 +XPixmapFormatValues.scanline_pad 8 +XPoint 4 +XPoint.x 0 +XPoint.y 2 +XPropertyEvent 32 +XPropertyEvent.atom 20 +XPropertyEvent.display 12 +XPropertyEvent.send_event 8 +XPropertyEvent.serial 4 +XPropertyEvent.state 28 +XPropertyEvent.time 24 +XPropertyEvent.type 0 +XPropertyEvent.window 16 +XRectangle 8 +XRectangle.height 6 +XRectangle.width 4 +XRectangle.x 0 +XRectangle.y 2 +XRenderDirectFormat 16 +XRenderDirectFormat.alpha 12 +XRenderDirectFormat.alphaMask 14 +XRenderDirectFormat.blue 8 +XRenderDirectFormat.blueMask 10 +XRenderDirectFormat.green 4 +XRenderDirectFormat.greenMask 6 +XRenderDirectFormat.red 0 +XRenderDirectFormat.redMask 2 +XRenderPictFormat 32 +XRenderPictFormat.colormap 28 +XRenderPictFormat.depth 8 +XRenderPictFormat.direct 12 +XRenderPictFormat.id 0 +XRenderPictFormat.type 4 +XReparentEvent 40 +XReparentEvent.display 12 +XReparentEvent.event 16 +XReparentEvent.override_redirect 36 +XReparentEvent.parent 24 +XReparentEvent.send_event 8 +XReparentEvent.serial 4 +XReparentEvent.type 0 +XReparentEvent.window 20 +XReparentEvent.x 28 +XReparentEvent.y 32 +XResizeRequestEvent 28 +XResizeRequestEvent.display 12 +XResizeRequestEvent.height 24 +XResizeRequestEvent.send_event 8 +XResizeRequestEvent.serial 4 +XResizeRequestEvent.type 0 +XResizeRequestEvent.width 20 +XResizeRequestEvent.window 16 +XSegment 8 +XSegment.x1 0 +XSegment.x2 4 +XSegment.y1 2 +XSegment.y2 6 +XSelectionClearEvent 28 +XSelectionClearEvent.display 12 +XSelectionClearEvent.selection 20 +XSelectionClearEvent.send_event 8 +XSelectionClearEvent.serial 4 +XSelectionClearEvent.time 24 +XSelectionClearEvent.type 0 +XSelectionClearEvent.window 16 +XSelectionEvent 36 +XSelectionEvent.display 12 +XSelectionEvent.property 28 +XSelectionEvent.requestor 16 +XSelectionEvent.selection 20 +XSelectionEvent.send_event 8 +XSelectionEvent.serial 4 +XSelectionEvent.target 24 +XSelectionEvent.time 32 +XSelectionEvent.type 0 +XSelectionRequestEvent 40 +XSelectionRequestEvent.display 12 +XSelectionRequestEvent.owner 16 +XSelectionRequestEvent.property 32 +XSelectionRequestEvent.requestor 20 +XSelectionRequestEvent.selection 24 +XSelectionRequestEvent.send_event 8 +XSelectionRequestEvent.serial 4 +XSelectionRequestEvent.target 28 +XSelectionRequestEvent.time 36 +XSelectionRequestEvent.type 0 +XSetWindowAttributes 60 +XSetWindowAttributes.background_pixel 4 +XSetWindowAttributes.background_pixmap 0 +XSetWindowAttributes.backing_pixel 32 +XSetWindowAttributes.backing_planes 28 +XSetWindowAttributes.backing_store 24 +XSetWindowAttributes.bit_gravity 16 +XSetWindowAttributes.border_pixel 12 +XSetWindowAttributes.border_pixmap 8 +XSetWindowAttributes.colormap 52 +XSetWindowAttributes.cursor 56 +XSetWindowAttributes.do_not_propagate_mask 44 +XSetWindowAttributes.event_mask 40 +XSetWindowAttributes.override_redirect 48 +XSetWindowAttributes.save_under 36 +XSetWindowAttributes.win_gravity 20 +XSizeHints 72 +XSizeHints.base_height 64 +XSizeHints.base_width 60 +XSizeHints.flags 0 +XSizeHints.height 16 +XSizeHints.height_inc 40 +XSizeHints.max_aspect.x 52 +XSizeHints.max_aspect.y 56 +XSizeHints.max_height 32 +XSizeHints.max_width 28 +XSizeHints.min_aspect.x 44 +XSizeHints.min_aspect.y 48 +XSizeHints.min_height 24 +XSizeHints.min_width 20 +XSizeHints.width 12 +XSizeHints.width_inc 36 +XSizeHints.win_gravity 68 +XSizeHints.x 4 +XSizeHints.y 8 +XStandardColormap 40 +XStandardColormap.base_pixel 28 +XStandardColormap.blue_max 20 +XStandardColormap.blue_mult 24 +XStandardColormap.colormap 0 +XStandardColormap.green_max 12 +XStandardColormap.green_mult 16 +XStandardColormap.killid 36 +XStandardColormap.red_max 4 +XStandardColormap.red_mult 8 +XStandardColormap.visualid 32 +XTextItem 16 +XTextItem16 16 +XTextItem16.chars 0 +XTextItem16.delta 8 +XTextItem16.font 12 +XTextItem16.nchars 4 +XTextItem.chars 0 +XTextItem.delta 8 +XTextItem.font 12 +XTextItem.nchars 4 +XTextProperty 16 +XTextProperty.encoding 4 +XTextProperty.format 8 +XTextProperty.nitems 12 +XTextProperty.value 0 +XTimeCoord 8 +XTimeCoord.time 0 +XTimeCoord.x 4 +XTimeCoord.y 6 +XUnmapEvent 28 +XUnmapEvent.display 12 +XUnmapEvent.event 16 +XUnmapEvent.from_configure 24 +XUnmapEvent.send_event 8 +XUnmapEvent.serial 4 +XUnmapEvent.type 0 +XUnmapEvent.window 20 +XVisibilityEvent 24 +XVisibilityEvent.display 12 +XVisibilityEvent.send_event 8 +XVisibilityEvent.serial 4 +XVisibilityEvent.state 20 +XVisibilityEvent.type 0 +XVisibilityEvent.window 16 +XVisualInfo 40 +XVisualInfo.bits_per_rgb 36 +XVisualInfo.blue_mask 28 +XVisualInfo.class 16 +XVisualInfo.colormap_size 32 +XVisualInfo.depth 12 +XVisualInfo.green_mask 24 +XVisualInfo.red_mask 20 +XVisualInfo.screen 8 +XVisualInfo.visual 0 +XVisualInfo.visualid 4 +XwcTextItem 16 +XwcTextItem.chars 0 +XwcTextItem.delta 8 +XwcTextItem.font_set 12 +XwcTextItem.nchars 4 +XWindowAttributes 92 +XWindowAttributes.all_event_masks 72 +XWindowAttributes.backing_pixel 52 +XWindowAttributes.backing_planes 48 +XWindowAttributes.backing_store 44 +XWindowAttributes.bit_gravity 36 +XWindowAttributes.border_width 16 +XWindowAttributes.class 32 +XWindowAttributes.colormap 60 +XWindowAttributes.depth 20 +XWindowAttributes.do_not_propagate_mask 80 +XWindowAttributes.height 12 +XWindowAttributes.map_installed 64 +XWindowAttributes.map_state 68 +XWindowAttributes.override_redirect 84 +XWindowAttributes.root 28 +XWindowAttributes.save_under 56 +XWindowAttributes.screen 88 +XWindowAttributes.visual 24 +XWindowAttributes.width 8 +XWindowAttributes.win_gravity 40 +XWindowAttributes.x 0 +XWindowAttributes.y 4 +XWindowAttributes.your_event_mask 76 +XWindowChanges 28 +XWindowChanges.border_width 16 +XWindowChanges.height 12 +XWindowChanges.sibling 20 +XWindowChanges.stack_mode 24 +XWindowChanges.width 8 +XWindowChanges.x 0 +XWindowChanges.y 4 +XWMHints 36 +XWMHints.flags 0 +XWMHints.icon_mask 28 +XWMHints.icon_pixmap 12 +XWMHints.icon_window 16 +XWMHints.icon_x 20 +XWMHints.icon_y 24 +XWMHints.initial_state 8 +XWMHints.input 4 +XWMHints.window_group 32
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/data/x11wrappergen/sizes-64.txt Thu Mar 08 10:18:28 2018 -0800 @@ -0,0 +1,1017 @@ +Atom 8 +AwtGraphicsConfigData 208 +AwtGraphicsConfigData.awt_cmap 8 +AwtGraphicsConfigData.AwtColorMatch 96 +AwtGraphicsConfigData.awt_depth 0 +AwtGraphicsConfigData.awtImage 88 +AwtGraphicsConfigData.awt_num_colors 80 +AwtGraphicsConfigData.awt_visInfo 16 +AwtGraphicsConfigData.color_data 144 +AwtGraphicsConfigData.glxInfo 152 +AwtGraphicsConfigData.isTranslucencySupported 160 +AwtGraphicsConfigData.monoImage 104 +AwtGraphicsConfigData.monoPixmap 112 +AwtGraphicsConfigData.monoPixmapGC 128 +AwtGraphicsConfigData.monoPixmapHeight 124 +AwtGraphicsConfigData.monoPixmapWidth 120 +AwtGraphicsConfigData.pixelStride 136 +AwtGraphicsConfigData.renderPictFormat 168 +awtImageData 560 +awtImageData.clrdata 16 +awtImageData.convert 48 +awtImageData.Depth 0 +awtImageData.wsImageFormat 4 +AwtScreenData 48 +AwtScreenData.blackpixel 24 +AwtScreenData.configs 40 +AwtScreenData.defaultConfig 32 +AwtScreenData.numConfigs 0 +AwtScreenData.root 8 +AwtScreenData.whitepixel 16 +Bool 4 +ColorData 88 +ColorData.awt_Colors 0 +ColorData.awt_icmLUT 16 +ColorData.awt_icmLUT2Colors 24 +ColorData.awt_numICMcolors 8 +ColorData.img_clr_tbl 40 +ColorData.img_grays 32 +ColorData.img_oda_blue 64 +ColorData.img_oda_green 56 +ColorData.img_oda_red 48 +ColorData.pGrayInverseLutData 72 +ColorData.representsPrimaries 84 +ColorData.screendata 80 +ColorEntry 4 +ColorEntry.b 2 +ColorEntry.flags 3 +ColorEntry.g 1 +ColorEntry.r 0 +Depth 16 +Depth.depth 0 +Depth.nvisuals 4 +Depth.visuals 8 +int 4 +long 8 +PropMwmHints 40 +PropMwmHints.decorations 16 +PropMwmHints.flags 0 +PropMwmHints.functions 8 +PropMwmHints.inputMode 24 +PropMwmHints.status 32 +ptr 8 +Screen 128 +Screen.backing_store 112 +Screen.black_pixel 96 +Screen.cmap 80 +Screen.default_gc 72 +Screen.depths 48 +Screen.display 8 +Screen.ext_data 0 +ScreenFormat 24 +ScreenFormat.bits_per_pixel 12 +ScreenFormat.depth 8 +ScreenFormat.ext_data 0 +ScreenFormat.scanline_pad 16 +Screen.height 28 +Screen.max_maps 104 +Screen.mheight 36 +Screen.min_maps 108 +Screen.mwidth 32 +Screen.ndepths 40 +Screen.root 16 +Screen.root_depth 56 +Screen.root_input_mask 120 +Screen.root_visual 64 +Screen.save_unders 116 +Screen.white_pixel 88 +Screen.width 24 +short 2 +Visual 56 +Visual.bits_per_rgb 48 +Visual.blue_mask 40 +Visual.class 16 +Visual.ext_data 0 +Visual.green_mask 32 +Visual.map_entries 52 +Visual.red_mask 24 +Visual.visualid 8 +Window 8 +XAnyEvent 40 +XAnyEvent.display 24 +XAnyEvent.send_event 16 +XAnyEvent.serial 8 +XAnyEvent.type 0 +XAnyEvent.window 32 +XArc 12 +XArc.angle1 8 +XArc.angle2 10 +XArc.height 6 +XArc.width 4 +XArc.x 0 +XArc.y 2 +XButtonEvent 96 +XButtonEvent.button 84 +XButtonEvent.display 24 +XButtonEvent.root 40 +XButtonEvent.same_screen 88 +XButtonEvent.send_event 16 +XButtonEvent.serial 8 +XButtonEvent.state 80 +XButtonEvent.subwindow 48 +XButtonEvent.time 56 +XButtonEvent.type 0 +XButtonEvent.window 32 +XButtonEvent.x 64 +XButtonEvent.x_root 72 +XButtonEvent.y 68 +XButtonEvent.y_root 76 +XChar2b 2 +XChar2b.byte1 0 +XChar2b.byte2 1 +XCharStruct 12 +XCharStruct.ascent 6 +XCharStruct.attributes 10 +XCharStruct.descent 8 +XCharStruct.lbearing 0 +XCharStruct.rbearing 2 +XCharStruct.width 4 +XCirculateEvent 56 +XCirculateEvent.display 24 +XCirculateEvent.event 32 +XCirculateEvent.place 48 +XCirculateEvent.send_event 16 +XCirculateEvent.serial 8 +XCirculateEvent.type 0 +XCirculateEvent.window 40 +XCirculateRequestEvent 56 +XCirculateRequestEvent.display 24 +XCirculateRequestEvent.parent 32 +XCirculateRequestEvent.place 48 +XCirculateRequestEvent.send_event 16 +XCirculateRequestEvent.serial 8 +XCirculateRequestEvent.type 0 +XCirculateRequestEvent.window 40 +XClassHint 16 +XClassHint.res_class 8 +XClassHint.res_name 0 +XClientMessageEvent 96 +XClientMessageEvent.data 56 +XClientMessageEvent.display 24 +XClientMessageEvent.format 48 +XClientMessageEvent.message_type 40 +XClientMessageEvent.send_event 16 +XClientMessageEvent.serial 8 +XClientMessageEvent.type 0 +XClientMessageEvent.window 32 +XColor 16 +XColor.blue 12 +XColor.flags 14 +XColor.green 10 +XColormapEvent 56 +XColormapEvent.colormap 40 +XColormapEvent.display 24 +XColormapEvent.new 48 +XColormapEvent.send_event 16 +XColormapEvent.serial 8 +XColormapEvent.state 52 +XColormapEvent.type 0 +XColormapEvent.window 32 +XColor.pad 15 +XColor.pixel 0 +XColor.red 8 +XComposeStatus 16 +XComposeStatus.chars_matched 8 +XComposeStatus.compose_ptr 0 +XConfigureEvent 88 +XConfigureEvent.above 72 +XConfigureEvent.border_width 64 +XConfigureEvent.display 24 +XConfigureEvent.event 32 +XConfigureEvent.height 60 +XConfigureEvent.override_redirect 80 +XConfigureEvent.send_event 16 +XConfigureEvent.serial 8 +XConfigureEvent.type 0 +XConfigureEvent.width 56 +XConfigureEvent.window 40 +XConfigureEvent.x 48 +XConfigureEvent.y 52 +XConfigureRequestEvent 96 +XConfigureRequestEvent.above 72 +XConfigureRequestEvent.border_width 64 +XConfigureRequestEvent.detail 80 +XConfigureRequestEvent.display 24 +XConfigureRequestEvent.height 60 +XConfigureRequestEvent.parent 32 +XConfigureRequestEvent.send_event 16 +XConfigureRequestEvent.serial 8 +XConfigureRequestEvent.type 0 +XConfigureRequestEvent.value_mask 88 +XConfigureRequestEvent.width 56 +XConfigureRequestEvent.window 40 +XConfigureRequestEvent.x 48 +XConfigureRequestEvent.y 52 +XCreateWindowEvent 72 +XCreateWindowEvent.border_width 64 +XCreateWindowEvent.display 24 +XCreateWindowEvent.height 60 +XCreateWindowEvent.override_redirect 68 +XCreateWindowEvent.parent 32 +XCreateWindowEvent.send_event 16 +XCreateWindowEvent.serial 8 +XCreateWindowEvent.type 0 +XCreateWindowEvent.width 56 +XCreateWindowEvent.window 40 +XCreateWindowEvent.x 48 +XCreateWindowEvent.y 52 +XCrossingEvent 104 +XCrossingEvent.detail 84 +XCrossingEvent.display 24 +XCrossingEvent.focus 92 +XCrossingEvent.mode 80 +XCrossingEvent.root 40 +XCrossingEvent.same_screen 88 +XCrossingEvent.send_event 16 +XCrossingEvent.serial 8 +XCrossingEvent.state 96 +XCrossingEvent.subwindow 48 +XCrossingEvent.time 56 +XCrossingEvent.type 0 +XCrossingEvent.window 32 +XCrossingEvent.x 64 +XCrossingEvent.x_root 72 +XCrossingEvent.y 68 +XCrossingEvent.y_root 76 +XdbeSwapInfo 16 +XdbeSwapInfo.swap_action 8 +XdbeSwapInfo.swap_window 0 +XDestroyWindowEvent 48 +XDestroyWindowEvent.display 24 +XDestroyWindowEvent.event 32 +XDestroyWindowEvent.send_event 16 +XDestroyWindowEvent.serial 8 +XDestroyWindowEvent.type 0 +XDestroyWindowEvent.window 40 +XErrorEvent 40 +XErrorEvent.display 8 +XErrorEvent.error_code 32 +XErrorEvent.minor_code 34 +XErrorEvent.request_code 33 +XErrorEvent.resourceid 16 +XErrorEvent.serial 24 +XErrorEvent.type 0 +XEvent 192 +XEvent.pad 0 +XEvent.type 0 +XEvent.xany 0 +XEvent.xbutton 0 +XEvent.xcirculate 0 +XEvent.xcirculaterequest 0 +XEvent.xclient 0 +XEvent.xcolormap 0 +XEvent.xconfigure 0 +XEvent.xconfigurerequest 0 +XEvent.xcreatewindow 0 +XEvent.xcrossing 0 +XEvent.xdestroywindow 0 +XEvent.xerror 0 +XEvent.xexpose 0 +XEvent.xfocus 0 +XEvent.xgraphicsexpose 0 +XEvent.xgravity 0 +XEvent.xkey 0 +XEvent.xkeymap 0 +XEvent.xmap 0 +XEvent.xmapping 0 +XEvent.xmaprequest 0 +XEvent.xmotion 0 +XEvent.xnoexpose 0 +XEvent.xproperty 0 +XEvent.xreparent 0 +XEvent.xresizerequest 0 +XEvent.xselection 0 +XEvent.xselectionclear 0 +XEvent.xselectionrequest 0 +XEvent.xunmap 0 +XEvent.xvisibility 0 +XExposeEvent 64 +XExposeEvent.count 56 +XExposeEvent.display 24 +XExposeEvent.height 52 +XExposeEvent.send_event 16 +XExposeEvent.serial 8 +XExposeEvent.type 0 +XExposeEvent.width 48 +XExposeEvent.window 32 +XExposeEvent.x 40 +XExposeEvent.y 44 +XExtCodes 16 +XExtCodes.extension 0 +XExtCodes.first_error 12 +XExtCodes.first_event 8 +XExtCodes.major_opcode 4 +XExtData 32 +XExtData.free_private 16 +XExtData.next 8 +XExtData.number 0 +XExtData.private_data 24 +XFocusChangeEvent 48 +XFocusChangeEvent.detail 44 +XFocusChangeEvent.display 24 +XFocusChangeEvent.mode 40 +XFocusChangeEvent.send_event 16 +XFocusChangeEvent.serial 8 +XFocusChangeEvent.type 0 +XFocusChangeEvent.window 32 +XFontProp 16 +XFontProp.card32 8 +XFontProp.name 0 +XFontSetExtents 16 +XFontSetExtents.max_ink_extent 0 +XFontSetExtents.max_logical_extent 8 +XFontStruct 96 +XFontStruct.all_chars_exist 36 +XFontStruct.ascent 88 +XFontStruct.descent 92 +XFontStruct.direction 16 +XFontStruct.ext_data 0 +XFontStruct.fid 8 +XFontStruct.max_bounds 68 +XFontStruct.max_byte1 32 +XFontStruct.max_char_or_byte2 24 +XFontStruct.min_bounds 56 +XFontStruct.min_byte1 28 +XFontStruct.min_char_or_byte2 20 +XFontStruct.n_properties 44 +XFontStruct.per_char 80 +XFontStruct.properties 48 +XGCValues 128 +XGCValues.arc_mode 56 +XGCValues.background 24 +XGCValues.cap_style 40 +XGCValues.clip_mask 112 +XGCValues.clip_x_origin 104 +XGCValues.clip_y_origin 108 +XGCValues.dashes 124 +XGCValues.dash_offset 120 +XGCValues.fill_rule 52 +XGCValues.fill_style 48 +XGCValues.font 88 +XGCValues.foreground 16 +XGCValues.function 0 +XGCValues.graphics_exposures 100 +XGCValues.join_style 44 +XGCValues.line_style 36 +XGCValues.line_width 32 +XGCValues.plane_mask 8 +XGCValues.stipple 72 +XGCValues.subwindow_mode 96 +XGCValues.tile 64 +XGCValues.ts_x_origin 80 +XGCValues.ts_y_origin 84 +XGraphicsExposeEvent 72 +XGraphicsExposeEvent.count 56 +XGraphicsExposeEvent.display 24 +XGraphicsExposeEvent.drawable 32 +XGraphicsExposeEvent.height 52 +XGraphicsExposeEvent.major_code 60 +XGraphicsExposeEvent.minor_code 64 +XGraphicsExposeEvent.send_event 16 +XGraphicsExposeEvent.serial 8 +XGraphicsExposeEvent.type 0 +XGraphicsExposeEvent.width 48 +XGraphicsExposeEvent.x 40 +XGraphicsExposeEvent.y 44 +XGravityEvent 56 +XGravityEvent.display 24 +XGravityEvent.event 32 +XGravityEvent.send_event 16 +XGravityEvent.serial 8 +XGravityEvent.type 0 +XGravityEvent.window 40 +XGravityEvent.x 48 +XGravityEvent.y 52 +XHostAddress 16 +XHostAddress.address 8 +XHostAddress.family 0 +XHostAddress.length 4 +XIconSize 24 +XIconSize.height_inc 20 +XIconSize.max_height 12 +XIconSize.max_width 8 +XIconSize.min_height 4 +XIconSize.min_width 0 +XIconSize.width_inc 16 +XImage 136 +XImage.bitmap_bit_order 32 +XImage.bitmap_pad 36 +XImage.bitmap_unit 28 +XImage.bits_per_pixel 48 +XImage.blue_mask 72 +XImage.byte_order 24 +XImage.bytes_per_line 44 +XImage.data 16 +XImage.depth 40 +XImage.f.add_pixel 128 +XImage.f.create_image 88 +XImage.f.destroy_image 96 +XImage.f.get_pixel 104 +XImage.format 12 +XImage.f.put_pixel 112 +XImage.f.sub_image 120 +XImage.green_mask 64 +XImage.height 4 +XImage.obdata 80 +XImage.red_mask 56 +XImage.width 0 +XImage.xoffset 8 +XIMCallback 16 +XIMCallback.callback 8 +XIMCallback.client_data 0 +XIMHotKeyTrigger 16 +XIMHotKeyTrigger.keysym 0 +XIMHotKeyTrigger.modifier 8 +XIMHotKeyTrigger.modifier_mask 12 +XIMHotKeyTriggers 16 +XIMHotKeyTriggers.key 8 +XIMHotKeyTriggers.num_hot_key 0 +XIMPreeditCaretCallbackStruct 12 +XIMPreeditCaretCallbackStruct.direction 4 +XIMPreeditCaretCallbackStruct.position 0 +XIMPreeditCaretCallbackStruct.style 8 +XIMPreeditDrawCallbackStruct 24 +XIMPreeditDrawCallbackStruct.caret 0 +XIMPreeditDrawCallbackStruct.chg_first 4 +XIMPreeditDrawCallbackStruct.chg_length 8 +XIMPreeditDrawCallbackStruct.text 16 +XIMPreeditStateNotifyCallbackStruct 8 +XIMPreeditStateNotifyCallbackStruct.state 0 +XIMStatusDrawCallbackStruct 16 +XIMStatusDrawCallbackStruct.data 8 +XIMStatusDrawCallbackStruct.type 0 +XIMStringConversionCallbackStruct 24 +XIMStringConversionCallbackStruct.direction 4 +XIMStringConversionCallbackStruct.factor 10 +XIMStringConversionCallbackStruct.operation 8 +XIMStringConversionCallbackStruct.position 0 +XIMStringConversionCallbackStruct.text 16 +XIMStringConversionText 32 +XIMStringConversionText.encoding_is_wchar 16 +XIMStringConversionText.feedback 8 +XIMStringConversionText.length 0 +XIMStringConversionText.string 24 +XIMStyles 16 +XIMStyles.count_styles 0 +XIMStyles.supported_styles 8 +XIMText 32 +XIMText.encoding_is_wchar 16 +XIMText.feedback 8 +XIMText.length 0 +XIMText.string 24 +XIMValuesList 16 +XIMValuesList.count_values 0 +XIMValuesList.supported_values 8 +XkbAccessXNotifyEvent 64 +XkbAccessXNotifyEvent.debounce_delay 60 +XkbAccessXNotifyEvent.detail 48 +XkbAccessXNotifyEvent.device 44 +XkbAccessXNotifyEvent.display 24 +XkbAccessXNotifyEvent.keycode 52 +XkbAccessXNotifyEvent.send_event 16 +XkbAccessXNotifyEvent.serial 8 +XkbAccessXNotifyEvent.sk_delay 56 +XkbAccessXNotifyEvent.time 32 +XkbAccessXNotifyEvent.type 0 +XkbAccessXNotifyEvent.xkb_type 40 +XkbActionMessageEvent 80 +XkbActionMessageEvent.device 44 +XkbActionMessageEvent.display 24 +XkbActionMessageEvent.group 60 +XkbActionMessageEvent.keycode 48 +XkbActionMessageEvent.key_event_follows 56 +XkbActionMessageEvent.message 68 +XkbActionMessageEvent.mods 64 +XkbActionMessageEvent.press 52 +XkbActionMessageEvent.send_event 16 +XkbActionMessageEvent.serial 8 +XkbActionMessageEvent.time 32 +XkbActionMessageEvent.type 0 +XkbActionMessageEvent.xkb_type 40 +XkbAnyEvent 48 +XkbAnyEvent.device 44 +XkbAnyEvent.display 24 +XkbAnyEvent.send_event 16 +XkbAnyEvent.serial 8 +XkbAnyEvent.time 32 +XkbAnyEvent.type 0 +XkbAnyEvent.xkb_type 40 +XkbBellNotifyEvent 96 +XkbBellNotifyEvent.bell_class 60 +XkbBellNotifyEvent.bell_id 64 +XkbBellNotifyEvent.device 44 +XkbBellNotifyEvent.display 24 +XkbBellNotifyEvent.duration 56 +XkbBellNotifyEvent.event_only 88 +XkbBellNotifyEvent.name 72 +XkbBellNotifyEvent.percent 48 +XkbBellNotifyEvent.pitch 52 +XkbBellNotifyEvent.send_event 16 +XkbBellNotifyEvent.serial 8 +XkbBellNotifyEvent.time 32 +XkbBellNotifyEvent.type 0 +XkbBellNotifyEvent.window 80 +XkbBellNotifyEvent.xkb_type 40 +XkbCompatMapNotifyEvent 64 +XkbCompatMapNotifyEvent.changed_groups 48 +XkbCompatMapNotifyEvent.device 44 +XkbCompatMapNotifyEvent.display 24 +XkbCompatMapNotifyEvent.first_si 52 +XkbCompatMapNotifyEvent.num_si 56 +XkbCompatMapNotifyEvent.num_total_si 60 +XkbCompatMapNotifyEvent.send_event 16 +XkbCompatMapNotifyEvent.serial 8 +XkbCompatMapNotifyEvent.time 32 +XkbCompatMapNotifyEvent.type 0 +XkbCompatMapNotifyEvent.xkb_type 40 +XkbControlsNotifyEvent 72 +XkbControlsNotifyEvent.changed_ctrls 48 +XkbControlsNotifyEvent.device 44 +XkbControlsNotifyEvent.display 24 +XkbControlsNotifyEvent.enabled_ctrl_changes 56 +XkbControlsNotifyEvent.enabled_ctrls 52 +XkbControlsNotifyEvent.event_type 65 +XkbControlsNotifyEvent.keycode 64 +XkbControlsNotifyEvent.num_groups 60 +XkbControlsNotifyEvent.req_major 66 +XkbControlsNotifyEvent.req_minor 67 +XkbControlsNotifyEvent.send_event 16 +XkbControlsNotifyEvent.serial 8 +XkbControlsNotifyEvent.time 32 +XkbControlsNotifyEvent.type 0 +XkbControlsNotifyEvent.xkb_type 40 +XkbEvent 192 +XkbEvent.accessx 0 +XkbEvent.any 0 +XkbEvent.bell 0 +XkbEvent.compat 0 +XkbEvent.core 0 +XkbEvent.ctrls 0 +XkbEvent.device 0 +XkbEvent.indicators 0 +XkbEvent.map 0 +XkbEvent.message 0 +XkbEvent.names 0 +XkbEvent.new_kbd 0 +XkbEvent.state 0 +XkbEvent.type 0 +XkbExtensionDeviceNotifyEvent 88 +XkbExtensionDeviceNotifyEvent.device 44 +XkbExtensionDeviceNotifyEvent.display 24 +XkbExtensionDeviceNotifyEvent.first_btn 60 +XkbExtensionDeviceNotifyEvent.led_class 76 +XkbExtensionDeviceNotifyEvent.led_id 80 +XkbExtensionDeviceNotifyEvent.leds_defined 68 +XkbExtensionDeviceNotifyEvent.led_state 72 +XkbExtensionDeviceNotifyEvent.num_btns 64 +XkbExtensionDeviceNotifyEvent.reason 48 +XkbExtensionDeviceNotifyEvent.send_event 16 +XkbExtensionDeviceNotifyEvent.serial 8 +XkbExtensionDeviceNotifyEvent.supported 52 +XkbExtensionDeviceNotifyEvent.time 32 +XkbExtensionDeviceNotifyEvent.type 0 +XkbExtensionDeviceNotifyEvent.unsupported 56 +XkbExtensionDeviceNotifyEvent.xkb_type 40 +XkbIndicatorNotifyEvent 56 +XkbIndicatorNotifyEvent.changed 48 +XkbIndicatorNotifyEvent.device 44 +XkbIndicatorNotifyEvent.display 24 +XkbIndicatorNotifyEvent.send_event 16 +XkbIndicatorNotifyEvent.serial 8 +XkbIndicatorNotifyEvent.state 52 +XkbIndicatorNotifyEvent.time 32 +XkbIndicatorNotifyEvent.type 0 +XkbIndicatorNotifyEvent.xkb_type 40 +XkbMapNotifyEvent 104 +XkbMapNotifyEvent.changed 48 +XkbMapNotifyEvent.device 44 +XkbMapNotifyEvent.display 24 +XkbMapNotifyEvent.first_key_act 67 +XkbMapNotifyEvent.first_key_behavior 68 +XkbMapNotifyEvent.first_key_explicit 69 +XkbMapNotifyEvent.first_key_sym 66 +XkbMapNotifyEvent.first_modmap_key 70 +XkbMapNotifyEvent.first_type 56 +XkbMapNotifyEvent.first_vmodmap_key 71 +XkbMapNotifyEvent.flags 52 +XkbMapNotifyEvent.max_key_code 65 +XkbMapNotifyEvent.min_key_code 64 +XkbMapNotifyEvent.num_key_acts 76 +XkbMapNotifyEvent.num_key_behaviors 80 +XkbMapNotifyEvent.num_key_explicit 84 +XkbMapNotifyEvent.num_key_syms 72 +XkbMapNotifyEvent.num_modmap_keys 88 +XkbMapNotifyEvent.num_types 60 +XkbMapNotifyEvent.num_vmodmap_keys 92 +XkbMapNotifyEvent.send_event 16 +XkbMapNotifyEvent.serial 8 +XkbMapNotifyEvent.time 32 +XkbMapNotifyEvent.type 0 +XkbMapNotifyEvent.vmods 96 +XkbMapNotifyEvent.xkb_type 40 +XkbNamesNotifyEvent 96 +XkbNamesNotifyEvent.changed 48 +XkbNamesNotifyEvent.changed_groups 80 +XkbNamesNotifyEvent.changed_indicators 84 +XkbNamesNotifyEvent.changed_vmods 76 +XkbNamesNotifyEvent.device 44 +XkbNamesNotifyEvent.display 24 +XkbNamesNotifyEvent.first_key 88 +XkbNamesNotifyEvent.first_lvl 60 +XkbNamesNotifyEvent.first_type 52 +XkbNamesNotifyEvent.num_aliases 68 +XkbNamesNotifyEvent.num_keys 92 +XkbNamesNotifyEvent.num_lvls 64 +XkbNamesNotifyEvent.num_radio_groups 72 +XkbNamesNotifyEvent.num_types 56 +XkbNamesNotifyEvent.send_event 16 +XkbNamesNotifyEvent.serial 8 +XkbNamesNotifyEvent.time 32 +XkbNamesNotifyEvent.type 0 +XkbNamesNotifyEvent.xkb_type 40 +XkbNewKeyboardNotifyEvent 80 +XkbNewKeyboardNotifyEvent.changed 68 +XkbNewKeyboardNotifyEvent.device 44 +XkbNewKeyboardNotifyEvent.display 24 +XkbNewKeyboardNotifyEvent.max_key_code 56 +XkbNewKeyboardNotifyEvent.min_key_code 52 +XkbNewKeyboardNotifyEvent.old_device 48 +XkbNewKeyboardNotifyEvent.old_max_key_code 64 +XkbNewKeyboardNotifyEvent.old_min_key_code 60 +XkbNewKeyboardNotifyEvent.req_major 72 +XkbNewKeyboardNotifyEvent.req_minor 73 +XkbNewKeyboardNotifyEvent.send_event 16 +XkbNewKeyboardNotifyEvent.serial 8 +XkbNewKeyboardNotifyEvent.time 32 +XkbNewKeyboardNotifyEvent.type 0 +XkbNewKeyboardNotifyEvent.xkb_type 40 +XkbStateNotifyEvent 104 +XkbStateNotifyEvent.base_group 56 +XkbStateNotifyEvent.base_mods 72 +XkbStateNotifyEvent.changed 48 +XkbStateNotifyEvent.compat_grab_mods 89 +XkbStateNotifyEvent.compat_lookup_mods 91 +XkbStateNotifyEvent.compat_state 84 +XkbStateNotifyEvent.device 44 +XkbStateNotifyEvent.display 24 +XkbStateNotifyEvent.event_type 97 +XkbStateNotifyEvent.grab_mods 88 +XkbStateNotifyEvent.group 52 +XkbStateNotifyEvent.keycode 96 +XkbStateNotifyEvent.latched_group 60 +XkbStateNotifyEvent.latched_mods 76 +XkbStateNotifyEvent.locked_group 64 +XkbStateNotifyEvent.locked_mods 80 +XkbStateNotifyEvent.lookup_mods 90 +XkbStateNotifyEvent.mods 68 +XkbStateNotifyEvent.ptr_buttons 92 +XkbStateNotifyEvent.req_major 98 +XkbStateNotifyEvent.req_minor 99 +XkbStateNotifyEvent.send_event 16 +XkbStateNotifyEvent.serial 8 +XkbStateNotifyEvent.time 32 +XkbStateNotifyEvent.type 0 +XkbStateNotifyEvent.xkb_type 40 +XKeyboardControl 32 +XKeyboardControl.auto_repeat_mode 28 +XKeyboardControl.bell_duration 12 +XKeyboardControl.bell_percent 4 +XKeyboardControl.bell_pitch 8 +XKeyboardControl.key 24 +XKeyboardControl.key_click_percent 0 +XKeyboardControl.led 16 +XKeyboardControl.led_mode 20 +XKeyboardState 64 +XKeyboardState.auto_repeats 28 +XKeyboardState.bell_duration 12 +XKeyboardState.bell_percent 4 +XKeyboardState.bell_pitch 8 +XKeyboardState.global_auto_repeat 24 +XKeyboardState.key_click_percent 0 +XKeyboardState.led_mask 16 +XKeyEvent 96 +XKeyEvent.display 24 +XKeyEvent.keycode 84 +XKeyEvent.root 40 +XKeyEvent.same_screen 88 +XKeyEvent.send_event 16 +XKeyEvent.serial 8 +XKeyEvent.state 80 +XKeyEvent.subwindow 48 +XKeyEvent.time 56 +XKeyEvent.type 0 +XKeyEvent.window 32 +XKeyEvent.x 64 +XKeyEvent.x_root 72 +XKeyEvent.y 68 +XKeyEvent.y_root 76 +XKeymapEvent 72 +XKeymapEvent.display 24 +XKeymapEvent.key_vector 40 +XKeymapEvent.send_event 16 +XKeymapEvent.serial 8 +XKeymapEvent.type 0 +XKeymapEvent.window 32 +XMapEvent 56 +XMapEvent.display 24 +XMapEvent.event 32 +XMapEvent.override_redirect 48 +XMapEvent.send_event 16 +XMapEvent.serial 8 +XMapEvent.type 0 +XMapEvent.window 40 +XMappingEvent 56 +XMappingEvent.count 48 +XMappingEvent.display 24 +XMappingEvent.first_keycode 44 +XMappingEvent.request 40 +XMappingEvent.send_event 16 +XMappingEvent.serial 8 +XMappingEvent.type 0 +XMappingEvent.window 32 +XMapRequestEvent 48 +XMapRequestEvent.display 24 +XMapRequestEvent.parent 32 +XMapRequestEvent.send_event 16 +XMapRequestEvent.serial 8 +XMapRequestEvent.type 0 +XMapRequestEvent.window 40 +XmbTextItem 24 +XmbTextItem.chars 0 +XmbTextItem.delta 12 +XmbTextItem.font_set 16 +XmbTextItem.nchars 8 +XModifierKeymap 16 +XModifierKeymap.max_keypermod 0 +XModifierKeymap.modifiermap 8 +XMotionEvent 96 +XMotionEvent.display 24 +XMotionEvent.is_hint 84 +XMotionEvent.root 40 +XMotionEvent.same_screen 88 +XMotionEvent.send_event 16 +XMotionEvent.serial 8 +XMotionEvent.state 80 +XMotionEvent.subwindow 48 +XMotionEvent.time 56 +XMotionEvent.type 0 +XMotionEvent.window 32 +XMotionEvent.x 64 +XMotionEvent.x_root 72 +XMotionEvent.y 68 +XMotionEvent.y_root 76 +XNoExposeEvent 48 +XNoExposeEvent.display 24 +XNoExposeEvent.drawable 32 +XNoExposeEvent.major_code 40 +XNoExposeEvent.minor_code 44 +XNoExposeEvent.send_event 16 +XNoExposeEvent.serial 8 +XNoExposeEvent.type 0 +XOMCharSetList 16 +XOMCharSetList.charset_count 0 +XOMCharSetList.charset_list 8 +XOMFontInfo 24 +XOMFontInfo.font_name_list 16 +XOMFontInfo.font_struct_list 8 +XOMFontInfo.num_font 0 +XOMOrientation 16 +XOMOrientation.num_orientation 0 +XOMOrientation.orientation 8 +XPixmapFormatValues 12 +XPixmapFormatValues.bits_per_pixel 4 +XPixmapFormatValues.depth 0 +XPixmapFormatValues.scanline_pad 8 +XPoint 4 +XPoint.x 0 +XPoint.y 2 +XPropertyEvent 64 +XPropertyEvent.atom 40 +XPropertyEvent.display 24 +XPropertyEvent.send_event 16 +XPropertyEvent.serial 8 +XPropertyEvent.state 56 +XPropertyEvent.time 48 +XPropertyEvent.type 0 +XPropertyEvent.window 32 +XRectangle 8 +XRectangle.height 6 +XRectangle.width 4 +XRectangle.x 0 +XRectangle.y 2 +XRenderDirectFormat 16 +XRenderDirectFormat.alpha 12 +XRenderDirectFormat.alphaMask 14 +XRenderDirectFormat.blue 8 +XRenderDirectFormat.blueMask 10 +XRenderDirectFormat.green 4 +XRenderDirectFormat.greenMask 6 +XRenderDirectFormat.red 0 +XRenderDirectFormat.redMask 2 +XRenderPictFormat 40 +XRenderPictFormat.colormap 32 +XRenderPictFormat.depth 12 +XRenderPictFormat.direct 16 +XRenderPictFormat.id 0 +XRenderPictFormat.type 8 +XReparentEvent 72 +XReparentEvent.display 24 +XReparentEvent.event 32 +XReparentEvent.override_redirect 64 +XReparentEvent.parent 48 +XReparentEvent.send_event 16 +XReparentEvent.serial 8 +XReparentEvent.type 0 +XReparentEvent.window 40 +XReparentEvent.x 56 +XReparentEvent.y 60 +XResizeRequestEvent 48 +XResizeRequestEvent.display 24 +XResizeRequestEvent.height 44 +XResizeRequestEvent.send_event 16 +XResizeRequestEvent.serial 8 +XResizeRequestEvent.type 0 +XResizeRequestEvent.width 40 +XResizeRequestEvent.window 32 +XSegment 8 +XSegment.x1 0 +XSegment.x2 4 +XSegment.y1 2 +XSegment.y2 6 +XSelectionClearEvent 56 +XSelectionClearEvent.display 24 +XSelectionClearEvent.selection 40 +XSelectionClearEvent.send_event 16 +XSelectionClearEvent.serial 8 +XSelectionClearEvent.time 48 +XSelectionClearEvent.type 0 +XSelectionClearEvent.window 32 +XSelectionEvent 72 +XSelectionEvent.display 24 +XSelectionEvent.property 56 +XSelectionEvent.requestor 32 +XSelectionEvent.selection 40 +XSelectionEvent.send_event 16 +XSelectionEvent.serial 8 +XSelectionEvent.target 48 +XSelectionEvent.time 64 +XSelectionEvent.type 0 +XSelectionRequestEvent 80 +XSelectionRequestEvent.display 24 +XSelectionRequestEvent.owner 32 +XSelectionRequestEvent.property 64 +XSelectionRequestEvent.requestor 40 +XSelectionRequestEvent.selection 48 +XSelectionRequestEvent.send_event 16 +XSelectionRequestEvent.serial 8 +XSelectionRequestEvent.target 56 +XSelectionRequestEvent.time 72 +XSelectionRequestEvent.type 0 +XSetWindowAttributes 112 +XSetWindowAttributes.background_pixel 8 +XSetWindowAttributes.background_pixmap 0 +XSetWindowAttributes.backing_pixel 56 +XSetWindowAttributes.backing_planes 48 +XSetWindowAttributes.backing_store 40 +XSetWindowAttributes.bit_gravity 32 +XSetWindowAttributes.border_pixel 24 +XSetWindowAttributes.border_pixmap 16 +XSetWindowAttributes.colormap 96 +XSetWindowAttributes.cursor 104 +XSetWindowAttributes.do_not_propagate_mask 80 +XSetWindowAttributes.event_mask 72 +XSetWindowAttributes.override_redirect 88 +XSetWindowAttributes.save_under 64 +XSetWindowAttributes.win_gravity 36 +XSizeHints 80 +XSizeHints.base_height 68 +XSizeHints.base_width 64 +XSizeHints.flags 0 +XSizeHints.height 20 +XSizeHints.height_inc 44 +XSizeHints.max_aspect.x 56 +XSizeHints.max_aspect.y 60 +XSizeHints.max_height 36 +XSizeHints.max_width 32 +XSizeHints.min_aspect.x 48 +XSizeHints.min_aspect.y 52 +XSizeHints.min_height 28 +XSizeHints.min_width 24 +XSizeHints.width 16 +XSizeHints.width_inc 40 +XSizeHints.win_gravity 72 +XSizeHints.x 8 +XSizeHints.y 12 +XStandardColormap 80 +XStandardColormap.base_pixel 56 +XStandardColormap.blue_max 40 +XStandardColormap.blue_mult 48 +XStandardColormap.colormap 0 +XStandardColormap.green_max 24 +XStandardColormap.green_mult 32 +XStandardColormap.killid 72 +XStandardColormap.red_max 8 +XStandardColormap.red_mult 16 +XStandardColormap.visualid 64 +XTextItem16 24 +XTextItem16.chars 0 +XTextItem16.delta 12 +XTextItem16.font 16 +XTextItem16.nchars 8 +XTextItem 24 +XTextItem.chars 0 +XTextItem.delta 12 +XTextItem.font 16 +XTextItem.nchars 8 +XTextProperty 32 +XTextProperty.encoding 8 +XTextProperty.format 16 +XTextProperty.nitems 24 +XTextProperty.value 0 +XTimeCoord 16 +XTimeCoord.time 0 +XTimeCoord.x 8 +XTimeCoord.y 10 +XUnmapEvent 56 +XUnmapEvent.display 24 +XUnmapEvent.event 32 +XUnmapEvent.from_configure 48 +XUnmapEvent.send_event 16 +XUnmapEvent.serial 8 +XUnmapEvent.type 0 +XUnmapEvent.window 40 +XVisibilityEvent 48 +XVisibilityEvent.display 24 +XVisibilityEvent.send_event 16 +XVisibilityEvent.serial 8 +XVisibilityEvent.state 40 +XVisibilityEvent.type 0 +XVisibilityEvent.window 32 +XVisualInfo 64 +XVisualInfo.bits_per_rgb 60 +XVisualInfo.blue_mask 48 +XVisualInfo.class 24 +XVisualInfo.colormap_size 56 +XVisualInfo.depth 20 +XVisualInfo.green_mask 40 +XVisualInfo.red_mask 32 +XVisualInfo.screen 16 +XVisualInfo.visual 0 +XVisualInfo.visualid 8 +XwcTextItem 24 +XwcTextItem.chars 0 +XwcTextItem.delta 12 +XwcTextItem.font_set 16 +XwcTextItem.nchars 8 +XWindowAttributes 136 +XWindowAttributes.all_event_masks 96 +XWindowAttributes.backing_pixel 64 +XWindowAttributes.backing_planes 56 +XWindowAttributes.backing_store 52 +XWindowAttributes.bit_gravity 44 +XWindowAttributes.border_width 16 +XWindowAttributes.class 40 +XWindowAttributes.colormap 80 +XWindowAttributes.depth 20 +XWindowAttributes.do_not_propagate_mask 112 +XWindowAttributes.height 12 +XWindowAttributes.map_installed 88 +XWindowAttributes.map_state 92 +XWindowAttributes.override_redirect 120 +XWindowAttributes.root 32 +XWindowAttributes.save_under 72 +XWindowAttributes.screen 128 +XWindowAttributes.visual 24 +XWindowAttributes.width 8 +XWindowAttributes.win_gravity 48 +XWindowAttributes.x 0 +XWindowAttributes.y 4 +XWindowAttributes.your_event_mask 104 +XWindowChanges 40 +XWindowChanges.border_width 16 +XWindowChanges.height 12 +XWindowChanges.sibling 24 +XWindowChanges.stack_mode 32 +XWindowChanges.width 8 +XWindowChanges.x 0 +XWindowChanges.y 4 +XWMHints 56 +XWMHints.flags 0 +XWMHints.icon_mask 40 +XWMHints.icon_pixmap 16 +XWMHints.icon_window 24 +XWMHints.icon_x 32 +XWMHints.icon_y 36 +XWMHints.initial_state 12 +XWMHints.input 8 +XWMHints.window_group 48
--- a/make/data/x11wrappergen/sizes.32 Thu Mar 08 14:31:54 2018 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1017 +0,0 @@ -long 4 -int 4 -short 2 -ptr 4 -Bool 4 -Atom 4 -Window 4 -XExtData.number 0 -XExtData.next 4 -XExtData.free_private 8 -XExtData.private_data 12 -XExtData 16 -XIMStringConversionCallbackStruct.position 0 -XIMStringConversionCallbackStruct.direction 4 -XIMStringConversionCallbackStruct.operation 8 -XIMStringConversionCallbackStruct.factor 10 -XIMStringConversionCallbackStruct.text 12 -XIMStringConversionCallbackStruct 16 -XkbNewKeyboardNotifyEvent.type 0 -XkbNewKeyboardNotifyEvent.serial 4 -XkbNewKeyboardNotifyEvent.send_event 8 -XkbNewKeyboardNotifyEvent.display 12 -XkbNewKeyboardNotifyEvent.time 16 -XkbNewKeyboardNotifyEvent.xkb_type 20 -XkbNewKeyboardNotifyEvent.device 24 -XkbNewKeyboardNotifyEvent.old_device 28 -XkbNewKeyboardNotifyEvent.min_key_code 32 -XkbNewKeyboardNotifyEvent.max_key_code 36 -XkbNewKeyboardNotifyEvent.old_min_key_code 40 -XkbNewKeyboardNotifyEvent.old_max_key_code 44 -XkbNewKeyboardNotifyEvent.changed 48 -XkbNewKeyboardNotifyEvent.req_major 52 -XkbNewKeyboardNotifyEvent.req_minor 53 -XkbNewKeyboardNotifyEvent 56 -XTimeCoord.time 0 -XTimeCoord.x 4 -XTimeCoord.y 6 -XTimeCoord 8 -XkbCompatMapNotifyEvent.type 0 -XkbCompatMapNotifyEvent.serial 4 -XkbCompatMapNotifyEvent.send_event 8 -XkbCompatMapNotifyEvent.display 12 -XkbCompatMapNotifyEvent.time 16 -XkbCompatMapNotifyEvent.xkb_type 20 -XkbCompatMapNotifyEvent.device 24 -XkbCompatMapNotifyEvent.changed_groups 28 -XkbCompatMapNotifyEvent.first_si 32 -XkbCompatMapNotifyEvent.num_si 36 -XkbCompatMapNotifyEvent.num_total_si 40 -XkbCompatMapNotifyEvent 44 -XIMStatusDrawCallbackStruct.type 0 -XIMStatusDrawCallbackStruct.data 4 -XIMStatusDrawCallbackStruct 8 -XKeyboardControl.key_click_percent 0 -XKeyboardControl.bell_percent 4 -XKeyboardControl.bell_pitch 8 -XKeyboardControl.bell_duration 12 -XKeyboardControl.led 16 -XKeyboardControl.led_mode 20 -XKeyboardControl.key 24 -XKeyboardControl.auto_repeat_mode 28 -XKeyboardControl 32 -XSelectionClearEvent.type 0 -XSelectionClearEvent.serial 4 -XSelectionClearEvent.send_event 8 -XSelectionClearEvent.display 12 -XSelectionClearEvent.window 16 -XSelectionClearEvent.selection 20 -XSelectionClearEvent.time 24 -XSelectionClearEvent 28 -XWindowChanges.x 0 -XWindowChanges.y 4 -XWindowChanges.width 8 -XWindowChanges.height 12 -XWindowChanges.border_width 16 -XWindowChanges.sibling 20 -XWindowChanges.stack_mode 24 -XWindowChanges 28 -XIMPreeditCaretCallbackStruct.position 0 -XIMPreeditCaretCallbackStruct.direction 4 -XIMPreeditCaretCallbackStruct.style 8 -XIMPreeditCaretCallbackStruct 12 -XOMCharSetList.charset_count 0 -XOMCharSetList.charset_list 4 -XOMCharSetList 8 -XOMFontInfo.num_font 0 -XOMFontInfo.font_struct_list 4 -XOMFontInfo.font_name_list 8 -XOMFontInfo 12 -AwtScreenData.numConfigs 0 -AwtScreenData.root 4 -AwtScreenData.whitepixel 8 -AwtScreenData.blackpixel 12 -AwtScreenData.defaultConfig 16 -AwtScreenData.configs 20 -AwtScreenData 24 -XIMHotKeyTrigger.keysym 0 -XIMHotKeyTrigger.modifier 4 -XIMHotKeyTrigger.modifier_mask 8 -XIMHotKeyTrigger 12 -XCirculateEvent.type 0 -XCirculateEvent.serial 4 -XCirculateEvent.send_event 8 -XCirculateEvent.display 12 -XCirculateEvent.event 16 -XCirculateEvent.window 20 -XCirculateEvent.place 24 -XCirculateEvent 28 -Screen.ext_data 0 -Screen.display 4 -Screen.root 8 -Screen.width 12 -Screen.height 16 -Screen.mwidth 20 -Screen.mheight 24 -Screen.ndepths 28 -Screen.depths 32 -Screen.root_depth 36 -Screen.root_visual 40 -Screen.default_gc 44 -Screen.cmap 48 -Screen.white_pixel 52 -Screen.black_pixel 56 -Screen.max_maps 60 -Screen.min_maps 64 -Screen.backing_store 68 -Screen.save_unders 72 -Screen.root_input_mask 76 -Screen 80 -XMapRequestEvent.type 0 -XMapRequestEvent.serial 4 -XMapRequestEvent.send_event 8 -XMapRequestEvent.display 12 -XMapRequestEvent.parent 16 -XMapRequestEvent.window 20 -XMapRequestEvent 24 -XIMText.length 0 -XIMText.feedback 4 -XIMText.encoding_is_wchar 8 -XIMText.string 12 -XIMText 16 -XGraphicsExposeEvent.type 0 -XGraphicsExposeEvent.serial 4 -XGraphicsExposeEvent.send_event 8 -XGraphicsExposeEvent.display 12 -XGraphicsExposeEvent.drawable 16 -XGraphicsExposeEvent.x 20 -XGraphicsExposeEvent.y 24 -XGraphicsExposeEvent.width 28 -XGraphicsExposeEvent.height 32 -XGraphicsExposeEvent.count 36 -XGraphicsExposeEvent.major_code 40 -XGraphicsExposeEvent.minor_code 44 -XGraphicsExposeEvent 48 -XEvent.type 0 -XEvent.xany 0 -XEvent.xkey 0 -XEvent.xbutton 0 -XEvent.xmotion 0 -XEvent.xcrossing 0 -XEvent.xfocus 0 -XEvent.xexpose 0 -XEvent.xgraphicsexpose 0 -XEvent.xnoexpose 0 -XEvent.xvisibility 0 -XEvent.xcreatewindow 0 -XEvent.xdestroywindow 0 -XEvent.xunmap 0 -XEvent.xmap 0 -XEvent.xmaprequest 0 -XEvent.xreparent 0 -XEvent.xconfigure 0 -XEvent.xgravity 0 -XEvent.xresizerequest 0 -XEvent.xconfigurerequest 0 -XEvent.xcirculate 0 -XEvent.xcirculaterequest 0 -XEvent.xproperty 0 -XEvent.xselectionclear 0 -XEvent.xselectionrequest 0 -XEvent.xselection 0 -XEvent.xcolormap 0 -XEvent.xclient 0 -XEvent.xmapping 0 -XEvent.xerror 0 -XEvent.xkeymap 0 -XEvent.pad 0 -XEvent 96 -XRenderDirectFormat.red 0 -XRenderDirectFormat.redMask 2 -XRenderDirectFormat.green 4 -XRenderDirectFormat.greenMask 6 -XRenderDirectFormat.blue 8 -XRenderDirectFormat.blueMask 10 -XRenderDirectFormat.alpha 12 -XRenderDirectFormat.alphaMask 14 -XRenderDirectFormat 16 -ColorData.awt_Colors 0 -ColorData.awt_numICMcolors 4 -ColorData.awt_icmLUT 8 -ColorData.awt_icmLUT2Colors 12 -ColorData.img_grays 16 -ColorData.img_clr_tbl 20 -ColorData.img_oda_red 24 -ColorData.img_oda_green 28 -ColorData.img_oda_blue 32 -ColorData.pGrayInverseLutData 36 -ColorData.screendata 40 -ColorData.representsPrimaries 44 -ColorData 48 -XFontStruct.ext_data 0 -XFontStruct.fid 4 -XFontStruct.direction 8 -XFontStruct.min_char_or_byte2 12 -XFontStruct.max_char_or_byte2 16 -XFontStruct.min_byte1 20 -XFontStruct.max_byte1 24 -XFontStruct.all_chars_exist 28 -XFontStruct.n_properties 36 -XFontStruct.properties 40 -XFontStruct.min_bounds 44 -XFontStruct.max_bounds 56 -XFontStruct.per_char 68 -XFontStruct.ascent 72 -XFontStruct.descent 76 -XFontStruct 80 -XExtCodes.extension 0 -XExtCodes.major_opcode 4 -XExtCodes.first_event 8 -XExtCodes.first_error 12 -XExtCodes 16 -XFontSetExtents.max_ink_extent 0 -XFontSetExtents.max_logical_extent 8 -XFontSetExtents 16 -XSelectionEvent.type 0 -XSelectionEvent.serial 4 -XSelectionEvent.send_event 8 -XSelectionEvent.display 12 -XSelectionEvent.requestor 16 -XSelectionEvent.selection 20 -XSelectionEvent.target 24 -XSelectionEvent.property 28 -XSelectionEvent.time 32 -XSelectionEvent 36 -XArc.x 0 -XArc.y 2 -XArc.width 4 -XArc.height 6 -XArc.angle1 8 -XArc.angle2 10 -XArc 12 -XErrorEvent.type 0 -XErrorEvent.display 4 -XErrorEvent.resourceid 8 -XErrorEvent.serial 12 -XErrorEvent.error_code 16 -XErrorEvent.request_code 17 -XErrorEvent.minor_code 18 -XErrorEvent 20 -XConfigureRequestEvent.type 0 -XConfigureRequestEvent.serial 4 -XConfigureRequestEvent.send_event 8 -XConfigureRequestEvent.display 12 -XConfigureRequestEvent.parent 16 -XConfigureRequestEvent.window 20 -XConfigureRequestEvent.x 24 -XConfigureRequestEvent.y 28 -XConfigureRequestEvent.width 32 -XConfigureRequestEvent.height 36 -XConfigureRequestEvent.border_width 40 -XConfigureRequestEvent.above 44 -XConfigureRequestEvent.detail 48 -XConfigureRequestEvent.value_mask 52 -XConfigureRequestEvent 56 -ScreenFormat.ext_data 0 -ScreenFormat.depth 4 -ScreenFormat.bits_per_pixel 8 -ScreenFormat.scanline_pad 12 -ScreenFormat 16 -XButtonEvent.type 0 -XButtonEvent.serial 4 -XButtonEvent.send_event 8 -XButtonEvent.display 12 -XButtonEvent.window 16 -XButtonEvent.root 20 -XButtonEvent.subwindow 24 -XButtonEvent.time 28 -XButtonEvent.x 32 -XButtonEvent.y 36 -XButtonEvent.x_root 40 -XButtonEvent.y_root 44 -XButtonEvent.state 48 -XButtonEvent.button 52 -XButtonEvent.same_screen 56 -XButtonEvent 60 -XFontProp.name 0 -XFontProp.card32 4 -XFontProp 8 -XIMValuesList.count_values 0 -XIMValuesList.supported_values 4 -XIMValuesList 8 -XKeymapEvent.type 0 -XKeymapEvent.serial 4 -XKeymapEvent.send_event 8 -XKeymapEvent.display 12 -XKeymapEvent.window 16 -XKeymapEvent.key_vector 20 -XKeymapEvent 52 -XTextItem16.chars 0 -XTextItem16.nchars 4 -XTextItem16.delta 8 -XTextItem16.font 12 -XTextItem16 16 -XIMPreeditDrawCallbackStruct.caret 0 -XIMPreeditDrawCallbackStruct.chg_first 4 -XIMPreeditDrawCallbackStruct.chg_length 8 -XIMPreeditDrawCallbackStruct.text 12 -XIMPreeditDrawCallbackStruct 16 -XVisualInfo.visual 0 -XVisualInfo.visualid 4 -XVisualInfo.screen 8 -XVisualInfo.depth 12 -XVisualInfo.class 16 -XVisualInfo.red_mask 20 -XVisualInfo.green_mask 24 -XVisualInfo.blue_mask 28 -XVisualInfo.colormap_size 32 -XVisualInfo.bits_per_rgb 36 -XVisualInfo 40 -XkbControlsNotifyEvent.type 0 -XkbControlsNotifyEvent.serial 4 -XkbControlsNotifyEvent.send_event 8 -XkbControlsNotifyEvent.display 12 -XkbControlsNotifyEvent.time 16 -XkbControlsNotifyEvent.xkb_type 20 -XkbControlsNotifyEvent.device 24 -XkbControlsNotifyEvent.changed_ctrls 28 -XkbControlsNotifyEvent.enabled_ctrls 32 -XkbControlsNotifyEvent.enabled_ctrl_changes 36 -XkbControlsNotifyEvent.num_groups 40 -XkbControlsNotifyEvent.keycode 44 -XkbControlsNotifyEvent.event_type 45 -XkbControlsNotifyEvent.req_major 46 -XkbControlsNotifyEvent.req_minor 47 -XkbControlsNotifyEvent 48 -PropMwmHints.flags 0 -PropMwmHints.functions 4 -PropMwmHints.decorations 8 -PropMwmHints.inputMode 12 -PropMwmHints.status 16 -PropMwmHints 20 -XClientMessageEvent.type 0 -XClientMessageEvent.serial 4 -XClientMessageEvent.send_event 8 -XClientMessageEvent.display 12 -XClientMessageEvent.window 16 -XClientMessageEvent.message_type 20 -XClientMessageEvent.format 24 -XClientMessageEvent.data 28 -XClientMessageEvent 48 -XAnyEvent.type 0 -XAnyEvent.serial 4 -XAnyEvent.send_event 8 -XAnyEvent.display 12 -XAnyEvent.window 16 -XAnyEvent 20 -XkbIndicatorNotifyEvent.type 0 -XkbIndicatorNotifyEvent.serial 4 -XkbIndicatorNotifyEvent.send_event 8 -XkbIndicatorNotifyEvent.display 12 -XkbIndicatorNotifyEvent.time 16 -XkbIndicatorNotifyEvent.xkb_type 20 -XkbIndicatorNotifyEvent.device 24 -XkbIndicatorNotifyEvent.changed 28 -XkbIndicatorNotifyEvent.state 32 -XkbIndicatorNotifyEvent 36 -XIMPreeditStateNotifyCallbackStruct.state 0 -XIMPreeditStateNotifyCallbackStruct 4 -XkbAnyEvent.type 0 -XkbAnyEvent.serial 4 -XkbAnyEvent.send_event 8 -XkbAnyEvent.display 12 -XkbAnyEvent.time 16 -XkbAnyEvent.xkb_type 20 -XkbAnyEvent.device 24 -XkbAnyEvent 28 -XMotionEvent.type 0 -XMotionEvent.serial 4 -XMotionEvent.send_event 8 -XMotionEvent.display 12 -XMotionEvent.window 16 -XMotionEvent.root 20 -XMotionEvent.subwindow 24 -XMotionEvent.time 28 -XMotionEvent.x 32 -XMotionEvent.y 36 -XMotionEvent.x_root 40 -XMotionEvent.y_root 44 -XMotionEvent.state 48 -XMotionEvent.is_hint 52 -XMotionEvent.same_screen 56 -XMotionEvent 60 -XIMHotKeyTriggers.num_hot_key 0 -XIMHotKeyTriggers.key 4 -XIMHotKeyTriggers 8 -XIMStyles.count_styles 0 -XIMStyles.supported_styles 4 -XIMStyles 8 -XkbExtensionDeviceNotifyEvent.type 0 -XkbExtensionDeviceNotifyEvent.serial 4 -XkbExtensionDeviceNotifyEvent.send_event 8 -XkbExtensionDeviceNotifyEvent.display 12 -XkbExtensionDeviceNotifyEvent.time 16 -XkbExtensionDeviceNotifyEvent.xkb_type 20 -XkbExtensionDeviceNotifyEvent.device 24 -XkbExtensionDeviceNotifyEvent.reason 28 -XkbExtensionDeviceNotifyEvent.supported 32 -XkbExtensionDeviceNotifyEvent.unsupported 36 -XkbExtensionDeviceNotifyEvent.first_btn 40 -XkbExtensionDeviceNotifyEvent.num_btns 44 -XkbExtensionDeviceNotifyEvent.leds_defined 48 -XkbExtensionDeviceNotifyEvent.led_state 52 -XkbExtensionDeviceNotifyEvent.led_class 56 -XkbExtensionDeviceNotifyEvent.led_id 60 -XkbExtensionDeviceNotifyEvent 64 -XwcTextItem.chars 0 -XwcTextItem.nchars 4 -XwcTextItem.delta 8 -XwcTextItem.font_set 12 -XwcTextItem 16 -XClassHint.res_name 0 -XClassHint.res_class 4 -XClassHint 8 -XChar2b.byte1 0 -XChar2b.byte2 1 -XChar2b 2 -XSetWindowAttributes.background_pixmap 0 -XSetWindowAttributes.background_pixel 4 -XSetWindowAttributes.border_pixmap 8 -XSetWindowAttributes.border_pixel 12 -XSetWindowAttributes.bit_gravity 16 -XSetWindowAttributes.win_gravity 20 -XSetWindowAttributes.backing_store 24 -XSetWindowAttributes.backing_planes 28 -XSetWindowAttributes.backing_pixel 32 -XSetWindowAttributes.save_under 36 -XSetWindowAttributes.event_mask 40 -XSetWindowAttributes.do_not_propagate_mask 44 -XSetWindowAttributes.override_redirect 48 -XSetWindowAttributes.colormap 52 -XSetWindowAttributes.cursor 56 -XSetWindowAttributes 60 -XRenderPictFormat.id 0 -XRenderPictFormat.type 4 -XRenderPictFormat.depth 8 -XRenderPictFormat.direct 12 -XRenderPictFormat.colormap 28 -XRenderPictFormat 32 -XReparentEvent.type 0 -XReparentEvent.serial 4 -XReparentEvent.send_event 8 -XReparentEvent.display 12 -XReparentEvent.event 16 -XReparentEvent.window 20 -XReparentEvent.parent 24 -XReparentEvent.x 28 -XReparentEvent.y 32 -XReparentEvent.override_redirect 36 -XReparentEvent 40 -XCirculateRequestEvent.type 0 -XCirculateRequestEvent.serial 4 -XCirculateRequestEvent.send_event 8 -XCirculateRequestEvent.display 12 -XCirculateRequestEvent.parent 16 -XCirculateRequestEvent.window 20 -XCirculateRequestEvent.place 24 -XCirculateRequestEvent 28 -XImage.width 0 -XImage.height 4 -XImage.xoffset 8 -XImage.format 12 -XImage.data 16 -XImage.byte_order 20 -XImage.bitmap_unit 24 -XImage.bitmap_bit_order 28 -XImage.bitmap_pad 32 -XImage.depth 36 -XImage.bytes_per_line 40 -XImage.bits_per_pixel 44 -XImage.red_mask 48 -XImage.green_mask 52 -XImage.blue_mask 56 -XImage.obdata 60 -XImage.f.create_image 64 -XImage.f.destroy_image 68 -XImage.f.get_pixel 72 -XImage.f.put_pixel 76 -XImage.f.sub_image 80 -XImage.f.add_pixel 84 -XImage 88 -XKeyEvent.type 0 -XKeyEvent.serial 4 -XKeyEvent.send_event 8 -XKeyEvent.display 12 -XKeyEvent.window 16 -XKeyEvent.root 20 -XKeyEvent.subwindow 24 -XKeyEvent.time 28 -XKeyEvent.x 32 -XKeyEvent.y 36 -XKeyEvent.x_root 40 -XKeyEvent.y_root 44 -XKeyEvent.state 48 -XKeyEvent.keycode 52 -XKeyEvent.same_screen 56 -XKeyEvent 60 -XkbActionMessageEvent.type 0 -XkbActionMessageEvent.serial 4 -XkbActionMessageEvent.send_event 8 -XkbActionMessageEvent.display 12 -XkbActionMessageEvent.time 16 -XkbActionMessageEvent.xkb_type 20 -XkbActionMessageEvent.device 24 -XkbActionMessageEvent.keycode 28 -XkbActionMessageEvent.press 32 -XkbActionMessageEvent.key_event_follows 36 -XkbActionMessageEvent.group 40 -XkbActionMessageEvent.mods 44 -XkbActionMessageEvent.message 48 -XkbActionMessageEvent 56 -XdbeSwapInfo.swap_window 0 -XdbeSwapInfo.swap_action 4 -XdbeSwapInfo 8 -XTextItem.chars 0 -XTextItem.nchars 4 -XTextItem.delta 8 -XTextItem.font 12 -XTextItem 16 -XModifierKeymap.max_keypermod 0 -XModifierKeymap.modifiermap 4 -XModifierKeymap 8 -XCharStruct.lbearing 0 -XCharStruct.rbearing 2 -XCharStruct.width 4 -XCharStruct.ascent 6 -XCharStruct.descent 8 -XCharStruct.attributes 10 -XCharStruct 12 -XGravityEvent.type 0 -XGravityEvent.serial 4 -XGravityEvent.send_event 8 -XGravityEvent.display 12 -XGravityEvent.event 16 -XGravityEvent.window 20 -XGravityEvent.x 24 -XGravityEvent.y 28 -XGravityEvent 32 -Visual.ext_data 0 -Visual.visualid 4 -Visual.class 8 -Visual.red_mask 12 -Visual.green_mask 16 -Visual.blue_mask 20 -Visual.bits_per_rgb 24 -Visual.map_entries 28 -Visual 32 -XOMOrientation.num_orientation 0 -XOMOrientation.orientation 4 -XOMOrientation 8 -XkbAccessXNotifyEvent.type 0 -XkbAccessXNotifyEvent.serial 4 -XkbAccessXNotifyEvent.send_event 8 -XkbAccessXNotifyEvent.display 12 -XkbAccessXNotifyEvent.time 16 -XkbAccessXNotifyEvent.xkb_type 20 -XkbAccessXNotifyEvent.device 24 -XkbAccessXNotifyEvent.detail 28 -XkbAccessXNotifyEvent.keycode 32 -XkbAccessXNotifyEvent.sk_delay 36 -XkbAccessXNotifyEvent.debounce_delay 40 -XkbAccessXNotifyEvent 44 -XWindowAttributes.x 0 -XWindowAttributes.y 4 -XWindowAttributes.width 8 -XWindowAttributes.height 12 -XWindowAttributes.border_width 16 -XWindowAttributes.depth 20 -XWindowAttributes.visual 24 -XWindowAttributes.root 28 -XWindowAttributes.class 32 -XWindowAttributes.bit_gravity 36 -XWindowAttributes.win_gravity 40 -XWindowAttributes.backing_store 44 -XWindowAttributes.backing_planes 48 -XWindowAttributes.backing_pixel 52 -XWindowAttributes.save_under 56 -XWindowAttributes.colormap 60 -XWindowAttributes.map_installed 64 -XWindowAttributes.map_state 68 -XWindowAttributes.all_event_masks 72 -XWindowAttributes.your_event_mask 76 -XWindowAttributes.do_not_propagate_mask 80 -XWindowAttributes.override_redirect 84 -XWindowAttributes.screen 88 -XWindowAttributes 92 -XmbTextItem.chars 0 -XmbTextItem.nchars 4 -XmbTextItem.delta 8 -XmbTextItem.font_set 12 -XmbTextItem 16 -XMappingEvent.type 0 -XMappingEvent.serial 4 -XMappingEvent.send_event 8 -XMappingEvent.display 12 -XMappingEvent.window 16 -XMappingEvent.request 20 -XMappingEvent.first_keycode 24 -XMappingEvent.count 28 -XMappingEvent 32 -XSizeHints.flags 0 -XSizeHints.x 4 -XSizeHints.y 8 -XSizeHints.width 12 -XSizeHints.height 16 -XSizeHints.min_width 20 -XSizeHints.min_height 24 -XSizeHints.max_width 28 -XSizeHints.max_height 32 -XSizeHints.width_inc 36 -XSizeHints.height_inc 40 -XSizeHints.min_aspect.x 44 -XSizeHints.min_aspect.y 48 -XSizeHints.max_aspect.x 52 -XSizeHints.max_aspect.y 56 -XSizeHints.base_width 60 -XSizeHints.base_height 64 -XSizeHints.win_gravity 68 -XSizeHints 72 -XUnmapEvent.type 0 -XUnmapEvent.serial 4 -XUnmapEvent.send_event 8 -XUnmapEvent.display 12 -XUnmapEvent.event 16 -XUnmapEvent.window 20 -XUnmapEvent.from_configure 24 -XUnmapEvent 28 -awtImageData.Depth 0 -awtImageData.wsImageFormat 4 -awtImageData.clrdata 16 -awtImageData.convert 48 -awtImageData 304 -XkbStateNotifyEvent.type 0 -XkbStateNotifyEvent.serial 4 -XkbStateNotifyEvent.send_event 8 -XkbStateNotifyEvent.display 12 -XkbStateNotifyEvent.time 16 -XkbStateNotifyEvent.xkb_type 20 -XkbStateNotifyEvent.device 24 -XkbStateNotifyEvent.changed 28 -XkbStateNotifyEvent.group 32 -XkbStateNotifyEvent.base_group 36 -XkbStateNotifyEvent.latched_group 40 -XkbStateNotifyEvent.locked_group 44 -XkbStateNotifyEvent.mods 48 -XkbStateNotifyEvent.base_mods 52 -XkbStateNotifyEvent.latched_mods 56 -XkbStateNotifyEvent.locked_mods 60 -XkbStateNotifyEvent.compat_state 64 -XkbStateNotifyEvent.grab_mods 68 -XkbStateNotifyEvent.compat_grab_mods 69 -XkbStateNotifyEvent.lookup_mods 70 -XkbStateNotifyEvent.compat_lookup_mods 71 -XkbStateNotifyEvent.ptr_buttons 72 -XkbStateNotifyEvent.keycode 76 -XkbStateNotifyEvent.event_type 77 -XkbStateNotifyEvent.req_major 78 -XkbStateNotifyEvent.req_minor 79 -XkbStateNotifyEvent 80 -XExposeEvent.type 0 -XExposeEvent.serial 4 -XExposeEvent.send_event 8 -XExposeEvent.display 12 -XExposeEvent.window 16 -XExposeEvent.x 20 -XExposeEvent.y 24 -XExposeEvent.width 28 -XExposeEvent.height 32 -XExposeEvent.count 36 -XExposeEvent 40 -XkbMapNotifyEvent.type 0 -XkbMapNotifyEvent.serial 4 -XkbMapNotifyEvent.send_event 8 -XkbMapNotifyEvent.display 12 -XkbMapNotifyEvent.time 16 -XkbMapNotifyEvent.xkb_type 20 -XkbMapNotifyEvent.device 24 -XkbMapNotifyEvent.changed 28 -XkbMapNotifyEvent.flags 32 -XkbMapNotifyEvent.first_type 36 -XkbMapNotifyEvent.num_types 40 -XkbMapNotifyEvent.min_key_code 44 -XkbMapNotifyEvent.max_key_code 45 -XkbMapNotifyEvent.first_key_sym 46 -XkbMapNotifyEvent.first_key_act 47 -XkbMapNotifyEvent.first_key_behavior 48 -XkbMapNotifyEvent.first_key_explicit 49 -XkbMapNotifyEvent.first_modmap_key 50 -XkbMapNotifyEvent.first_vmodmap_key 51 -XkbMapNotifyEvent.num_key_syms 52 -XkbMapNotifyEvent.num_key_acts 56 -XkbMapNotifyEvent.num_key_behaviors 60 -XkbMapNotifyEvent.num_key_explicit 64 -XkbMapNotifyEvent.num_modmap_keys 68 -XkbMapNotifyEvent.num_vmodmap_keys 72 -XkbMapNotifyEvent.vmods 76 -XkbMapNotifyEvent 80 -XGCValues.function 0 -XGCValues.plane_mask 4 -XGCValues.foreground 8 -XGCValues.background 12 -XGCValues.line_width 16 -XGCValues.line_style 20 -XGCValues.cap_style 24 -XGCValues.join_style 28 -XGCValues.fill_style 32 -XGCValues.fill_rule 36 -XGCValues.arc_mode 40 -XGCValues.tile 44 -XGCValues.stipple 48 -XGCValues.ts_x_origin 52 -XGCValues.ts_y_origin 56 -XGCValues.font 60 -XGCValues.subwindow_mode 64 -XGCValues.graphics_exposures 68 -XGCValues.clip_x_origin 72 -XGCValues.clip_y_origin 76 -XGCValues.clip_mask 80 -XGCValues.dash_offset 84 -XGCValues.dashes 88 -XGCValues 92 -XFocusChangeEvent.type 0 -XFocusChangeEvent.serial 4 -XFocusChangeEvent.send_event 8 -XFocusChangeEvent.display 12 -XFocusChangeEvent.window 16 -XFocusChangeEvent.mode 20 -XFocusChangeEvent.detail 24 -XFocusChangeEvent 28 -XPixmapFormatValues.depth 0 -XPixmapFormatValues.bits_per_pixel 4 -XPixmapFormatValues.scanline_pad 8 -XPixmapFormatValues 12 -XMapEvent.type 0 -XMapEvent.serial 4 -XMapEvent.send_event 8 -XMapEvent.display 12 -XMapEvent.event 16 -XMapEvent.window 20 -XMapEvent.override_redirect 24 -XMapEvent 28 -XkbBellNotifyEvent.type 0 -XkbBellNotifyEvent.serial 4 -XkbBellNotifyEvent.send_event 8 -XkbBellNotifyEvent.display 12 -XkbBellNotifyEvent.time 16 -XkbBellNotifyEvent.xkb_type 20 -XkbBellNotifyEvent.device 24 -XkbBellNotifyEvent.percent 28 -XkbBellNotifyEvent.pitch 32 -XkbBellNotifyEvent.duration 36 -XkbBellNotifyEvent.bell_class 40 -XkbBellNotifyEvent.bell_id 44 -XkbBellNotifyEvent.name 48 -XkbBellNotifyEvent.window 52 -XkbBellNotifyEvent.event_only 56 -XkbBellNotifyEvent 60 -XIMStringConversionText.length 0 -XIMStringConversionText.feedback 4 -XIMStringConversionText.encoding_is_wchar 8 -XIMStringConversionText.string 12 -XIMStringConversionText 16 -XKeyboardState.key_click_percent 0 -XKeyboardState.bell_percent 4 -XKeyboardState.bell_pitch 8 -XKeyboardState.bell_duration 12 -XKeyboardState.led_mask 16 -XKeyboardState.global_auto_repeat 20 -XKeyboardState.auto_repeats 24 -XKeyboardState 56 -XkbEvent.type 0 -XkbEvent.any 0 -XkbEvent.new_kbd 0 -XkbEvent.map 0 -XkbEvent.state 0 -XkbEvent.ctrls 0 -XkbEvent.indicators 0 -XkbEvent.names 0 -XkbEvent.compat 0 -XkbEvent.bell 0 -XkbEvent.message 0 -XkbEvent.accessx 0 -XkbEvent.device 0 -XkbEvent.core 0 -XkbEvent 96 -XPoint.x 0 -XPoint.y 2 -XPoint 4 -XSegment.x1 0 -XSegment.y1 2 -XSegment.x2 4 -XSegment.y2 6 -XSegment 8 -XIconSize.min_width 0 -XIconSize.min_height 4 -XIconSize.max_width 8 -XIconSize.max_height 12 -XIconSize.width_inc 16 -XIconSize.height_inc 20 -XIconSize 24 -XIMCallback.client_data 0 -XIMCallback.callback 4 -XIMCallback 8 -XConfigureEvent.type 0 -XConfigureEvent.serial 4 -XConfigureEvent.send_event 8 -XConfigureEvent.display 12 -XConfigureEvent.event 16 -XConfigureEvent.window 20 -XConfigureEvent.x 24 -XConfigureEvent.y 28 -XConfigureEvent.width 32 -XConfigureEvent.height 36 -XConfigureEvent.border_width 40 -XConfigureEvent.above 44 -XConfigureEvent.override_redirect 48 -XConfigureEvent 52 -XRectangle.x 0 -XRectangle.y 2 -XRectangle.width 4 -XRectangle.height 6 -XRectangle 8 -XkbNamesNotifyEvent.type 0 -XkbNamesNotifyEvent.serial 4 -XkbNamesNotifyEvent.send_event 8 -XkbNamesNotifyEvent.display 12 -XkbNamesNotifyEvent.time 16 -XkbNamesNotifyEvent.xkb_type 20 -XkbNamesNotifyEvent.device 24 -XkbNamesNotifyEvent.changed 28 -XkbNamesNotifyEvent.first_type 32 -XkbNamesNotifyEvent.num_types 36 -XkbNamesNotifyEvent.first_lvl 40 -XkbNamesNotifyEvent.num_lvls 44 -XkbNamesNotifyEvent.num_aliases 48 -XkbNamesNotifyEvent.num_radio_groups 52 -XkbNamesNotifyEvent.changed_vmods 56 -XkbNamesNotifyEvent.changed_groups 60 -XkbNamesNotifyEvent.changed_indicators 64 -XkbNamesNotifyEvent.first_key 68 -XkbNamesNotifyEvent.num_keys 72 -XkbNamesNotifyEvent 76 -XCreateWindowEvent.type 0 -XCreateWindowEvent.serial 4 -XCreateWindowEvent.send_event 8 -XCreateWindowEvent.display 12 -XCreateWindowEvent.parent 16 -XCreateWindowEvent.window 20 -XCreateWindowEvent.x 24 -XCreateWindowEvent.y 28 -XCreateWindowEvent.width 32 -XCreateWindowEvent.height 36 -XCreateWindowEvent.border_width 40 -XCreateWindowEvent.override_redirect 44 -XCreateWindowEvent 48 -XVisibilityEvent.type 0 -XVisibilityEvent.serial 4 -XVisibilityEvent.send_event 8 -XVisibilityEvent.display 12 -XVisibilityEvent.window 16 -XVisibilityEvent.state 20 -XVisibilityEvent 24 -XWMHints.flags 0 -XWMHints.initial_state 8 -XWMHints.icon_pixmap 12 -XWMHints.icon_window 16 -XWMHints.icon_x 20 -XWMHints.icon_y 24 -XWMHints.icon_mask 28 -XWMHints.input 4 -XWMHints.window_group 32 -XWMHints 36 -XCrossingEvent.type 0 -XCrossingEvent.serial 4 -XCrossingEvent.send_event 8 -XCrossingEvent.display 12 -XCrossingEvent.window 16 -XCrossingEvent.root 20 -XCrossingEvent.subwindow 24 -XCrossingEvent.time 28 -XCrossingEvent.x 32 -XCrossingEvent.y 36 -XCrossingEvent.x_root 40 -XCrossingEvent.y_root 44 -XCrossingEvent.mode 48 -XCrossingEvent.detail 52 -XCrossingEvent.same_screen 56 -XCrossingEvent.focus 60 -XCrossingEvent.state 64 -XCrossingEvent 68 -XSelectionRequestEvent.type 0 -XSelectionRequestEvent.serial 4 -XSelectionRequestEvent.send_event 8 -XSelectionRequestEvent.display 12 -XSelectionRequestEvent.owner 16 -XSelectionRequestEvent.requestor 20 -XSelectionRequestEvent.selection 24 -XSelectionRequestEvent.target 28 -XSelectionRequestEvent.property 32 -XSelectionRequestEvent.time 36 -XSelectionRequestEvent 40 -XNoExposeEvent.type 0 -XNoExposeEvent.serial 4 -XNoExposeEvent.send_event 8 -XNoExposeEvent.display 12 -XNoExposeEvent.drawable 16 -XNoExposeEvent.major_code 20 -XNoExposeEvent.minor_code 24 -XNoExposeEvent 28 -XHostAddress.family 0 -XHostAddress.length 4 -XHostAddress.address 8 -XHostAddress 12 -XColormapEvent.type 0 -XColormapEvent.serial 4 -XColormapEvent.send_event 8 -XColormapEvent.display 12 -XColormapEvent.window 16 -XColormapEvent.colormap 20 -XColormapEvent.new 24 -XColormapEvent.state 28 -XColormapEvent 32 -ColorEntry.r 0 -ColorEntry.g 1 -ColorEntry.b 2 -ColorEntry.flags 3 -ColorEntry 4 -XResizeRequestEvent.type 0 -XResizeRequestEvent.serial 4 -XResizeRequestEvent.send_event 8 -XResizeRequestEvent.display 12 -XResizeRequestEvent.window 16 -XResizeRequestEvent.width 20 -XResizeRequestEvent.height 24 -XResizeRequestEvent 28 -Depth.depth 0 -Depth.nvisuals 4 -Depth.visuals 8 -Depth 12 -XPropertyEvent.type 0 -XPropertyEvent.serial 4 -XPropertyEvent.send_event 8 -XPropertyEvent.display 12 -XPropertyEvent.window 16 -XPropertyEvent.atom 20 -XPropertyEvent.time 24 -XPropertyEvent.state 28 -XPropertyEvent 32 -XDestroyWindowEvent.type 0 -XDestroyWindowEvent.serial 4 -XDestroyWindowEvent.send_event 8 -XDestroyWindowEvent.display 12 -XDestroyWindowEvent.event 16 -XDestroyWindowEvent.window 20 -XDestroyWindowEvent 24 -XStandardColormap.colormap 0 -XStandardColormap.red_max 4 -XStandardColormap.red_mult 8 -XStandardColormap.green_max 12 -XStandardColormap.green_mult 16 -XStandardColormap.blue_max 20 -XStandardColormap.blue_mult 24 -XStandardColormap.base_pixel 28 -XStandardColormap.visualid 32 -XStandardColormap.killid 36 -XStandardColormap 40 -XComposeStatus.compose_ptr 0 -XComposeStatus.chars_matched 4 -XComposeStatus 8 -AwtGraphicsConfigData.awt_depth 0 -AwtGraphicsConfigData.awt_cmap 4 -AwtGraphicsConfigData.awt_visInfo 8 -AwtGraphicsConfigData.awt_num_colors 48 -AwtGraphicsConfigData.awtImage 52 -AwtGraphicsConfigData.AwtColorMatch 56 -AwtGraphicsConfigData.monoImage 60 -AwtGraphicsConfigData.monoPixmap 64 -AwtGraphicsConfigData.monoPixmapWidth 68 -AwtGraphicsConfigData.monoPixmapHeight 72 -AwtGraphicsConfigData.monoPixmapGC 76 -AwtGraphicsConfigData.pixelStride 80 -AwtGraphicsConfigData.color_data 84 -AwtGraphicsConfigData.glxInfo 88 -AwtGraphicsConfigData.isTranslucencySupported 92 -AwtGraphicsConfigData.renderPictFormat 96 -AwtGraphicsConfigData 128 -XColor.pixel 0 -XColor.red 4 -XColor.green 6 -XColor.blue 8 -XColor.flags 10 -XColor.pad 11 -XColor 12 -XTextProperty.value 0 -XTextProperty.encoding 4 -XTextProperty.format 8 -XTextProperty.nitems 12 -XTextProperty 16
--- a/make/data/x11wrappergen/sizes.64 Thu Mar 08 14:31:54 2018 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1017 +0,0 @@ -long 8 -int 4 -short 2 -ptr 8 -Bool 4 -Atom 8 -Window 8 -XExtData.number 0 -XExtData.next 8 -XExtData.free_private 16 -XExtData.private_data 24 -XExtData 32 -XIMStringConversionCallbackStruct.position 0 -XIMStringConversionCallbackStruct.direction 4 -XIMStringConversionCallbackStruct.operation 8 -XIMStringConversionCallbackStruct.factor 10 -XIMStringConversionCallbackStruct.text 16 -XIMStringConversionCallbackStruct 24 -XkbNewKeyboardNotifyEvent.type 0 -XkbNewKeyboardNotifyEvent.serial 8 -XkbNewKeyboardNotifyEvent.send_event 16 -XkbNewKeyboardNotifyEvent.display 24 -XkbNewKeyboardNotifyEvent.time 32 -XkbNewKeyboardNotifyEvent.xkb_type 40 -XkbNewKeyboardNotifyEvent.device 44 -XkbNewKeyboardNotifyEvent.old_device 48 -XkbNewKeyboardNotifyEvent.min_key_code 52 -XkbNewKeyboardNotifyEvent.max_key_code 56 -XkbNewKeyboardNotifyEvent.old_min_key_code 60 -XkbNewKeyboardNotifyEvent.old_max_key_code 64 -XkbNewKeyboardNotifyEvent.changed 68 -XkbNewKeyboardNotifyEvent.req_major 72 -XkbNewKeyboardNotifyEvent.req_minor 73 -XkbNewKeyboardNotifyEvent 80 -XTimeCoord.time 0 -XTimeCoord.x 8 -XTimeCoord.y 10 -XTimeCoord 16 -XkbCompatMapNotifyEvent.type 0 -XkbCompatMapNotifyEvent.serial 8 -XkbCompatMapNotifyEvent.send_event 16 -XkbCompatMapNotifyEvent.display 24 -XkbCompatMapNotifyEvent.time 32 -XkbCompatMapNotifyEvent.xkb_type 40 -XkbCompatMapNotifyEvent.device 44 -XkbCompatMapNotifyEvent.changed_groups 48 -XkbCompatMapNotifyEvent.first_si 52 -XkbCompatMapNotifyEvent.num_si 56 -XkbCompatMapNotifyEvent.num_total_si 60 -XkbCompatMapNotifyEvent 64 -XIMStatusDrawCallbackStruct.type 0 -XIMStatusDrawCallbackStruct.data 8 -XIMStatusDrawCallbackStruct 16 -XKeyboardControl.key_click_percent 0 -XKeyboardControl.bell_percent 4 -XKeyboardControl.bell_pitch 8 -XKeyboardControl.bell_duration 12 -XKeyboardControl.led 16 -XKeyboardControl.led_mode 20 -XKeyboardControl.key 24 -XKeyboardControl.auto_repeat_mode 28 -XKeyboardControl 32 -XSelectionClearEvent.type 0 -XSelectionClearEvent.serial 8 -XSelectionClearEvent.send_event 16 -XSelectionClearEvent.display 24 -XSelectionClearEvent.window 32 -XSelectionClearEvent.selection 40 -XSelectionClearEvent.time 48 -XSelectionClearEvent 56 -XWindowChanges.x 0 -XWindowChanges.y 4 -XWindowChanges.width 8 -XWindowChanges.height 12 -XWindowChanges.border_width 16 -XWindowChanges.sibling 24 -XWindowChanges.stack_mode 32 -XWindowChanges 40 -XIMPreeditCaretCallbackStruct.position 0 -XIMPreeditCaretCallbackStruct.direction 4 -XIMPreeditCaretCallbackStruct.style 8 -XIMPreeditCaretCallbackStruct 12 -XOMCharSetList.charset_count 0 -XOMCharSetList.charset_list 8 -XOMCharSetList 16 -XOMFontInfo.num_font 0 -XOMFontInfo.font_struct_list 8 -XOMFontInfo.font_name_list 16 -XOMFontInfo 24 -AwtScreenData.numConfigs 0 -AwtScreenData.root 8 -AwtScreenData.whitepixel 16 -AwtScreenData.blackpixel 24 -AwtScreenData.defaultConfig 32 -AwtScreenData.configs 40 -AwtScreenData 48 -XIMHotKeyTrigger.keysym 0 -XIMHotKeyTrigger.modifier 8 -XIMHotKeyTrigger.modifier_mask 12 -XIMHotKeyTrigger 16 -XCirculateEvent.type 0 -XCirculateEvent.serial 8 -XCirculateEvent.send_event 16 -XCirculateEvent.display 24 -XCirculateEvent.event 32 -XCirculateEvent.window 40 -XCirculateEvent.place 48 -XCirculateEvent 56 -Screen.ext_data 0 -Screen.display 8 -Screen.root 16 -Screen.width 24 -Screen.height 28 -Screen.mwidth 32 -Screen.mheight 36 -Screen.ndepths 40 -Screen.depths 48 -Screen.root_depth 56 -Screen.root_visual 64 -Screen.default_gc 72 -Screen.cmap 80 -Screen.white_pixel 88 -Screen.black_pixel 96 -Screen.max_maps 104 -Screen.min_maps 108 -Screen.backing_store 112 -Screen.save_unders 116 -Screen.root_input_mask 120 -Screen 128 -XMapRequestEvent.type 0 -XMapRequestEvent.serial 8 -XMapRequestEvent.send_event 16 -XMapRequestEvent.display 24 -XMapRequestEvent.parent 32 -XMapRequestEvent.window 40 -XMapRequestEvent 48 -XIMText.length 0 -XIMText.feedback 8 -XIMText.encoding_is_wchar 16 -XIMText.string 24 -XIMText 32 -XGraphicsExposeEvent.type 0 -XGraphicsExposeEvent.serial 8 -XGraphicsExposeEvent.send_event 16 -XGraphicsExposeEvent.display 24 -XGraphicsExposeEvent.drawable 32 -XGraphicsExposeEvent.x 40 -XGraphicsExposeEvent.y 44 -XGraphicsExposeEvent.width 48 -XGraphicsExposeEvent.height 52 -XGraphicsExposeEvent.count 56 -XGraphicsExposeEvent.major_code 60 -XGraphicsExposeEvent.minor_code 64 -XGraphicsExposeEvent 72 -XEvent.type 0 -XEvent.xany 0 -XEvent.xkey 0 -XEvent.xbutton 0 -XEvent.xmotion 0 -XEvent.xcrossing 0 -XEvent.xfocus 0 -XEvent.xexpose 0 -XEvent.xgraphicsexpose 0 -XEvent.xnoexpose 0 -XEvent.xvisibility 0 -XEvent.xcreatewindow 0 -XEvent.xdestroywindow 0 -XEvent.xunmap 0 -XEvent.xmap 0 -XEvent.xmaprequest 0 -XEvent.xreparent 0 -XEvent.xconfigure 0 -XEvent.xgravity 0 -XEvent.xresizerequest 0 -XEvent.xconfigurerequest 0 -XEvent.xcirculate 0 -XEvent.xcirculaterequest 0 -XEvent.xproperty 0 -XEvent.xselectionclear 0 -XEvent.xselectionrequest 0 -XEvent.xselection 0 -XEvent.xcolormap 0 -XEvent.xclient 0 -XEvent.xmapping 0 -XEvent.xerror 0 -XEvent.xkeymap 0 -XEvent.pad 0 -XEvent 192 -XRenderDirectFormat.red 0 -XRenderDirectFormat.redMask 2 -XRenderDirectFormat.green 4 -XRenderDirectFormat.greenMask 6 -XRenderDirectFormat.blue 8 -XRenderDirectFormat.blueMask 10 -XRenderDirectFormat.alpha 12 -XRenderDirectFormat.alphaMask 14 -XRenderDirectFormat 16 -ColorData.awt_Colors 0 -ColorData.awt_numICMcolors 8 -ColorData.awt_icmLUT 16 -ColorData.awt_icmLUT2Colors 24 -ColorData.img_grays 32 -ColorData.img_clr_tbl 40 -ColorData.img_oda_red 48 -ColorData.img_oda_green 56 -ColorData.img_oda_blue 64 -ColorData.pGrayInverseLutData 72 -ColorData.screendata 80 -ColorData.representsPrimaries 84 -ColorData 88 -XFontStruct.ext_data 0 -XFontStruct.fid 8 -XFontStruct.direction 16 -XFontStruct.min_char_or_byte2 20 -XFontStruct.max_char_or_byte2 24 -XFontStruct.min_byte1 28 -XFontStruct.max_byte1 32 -XFontStruct.all_chars_exist 36 -XFontStruct.n_properties 44 -XFontStruct.properties 48 -XFontStruct.min_bounds 56 -XFontStruct.max_bounds 68 -XFontStruct.per_char 80 -XFontStruct.ascent 88 -XFontStruct.descent 92 -XFontStruct 96 -XExtCodes.extension 0 -XExtCodes.major_opcode 4 -XExtCodes.first_event 8 -XExtCodes.first_error 12 -XExtCodes 16 -XFontSetExtents.max_ink_extent 0 -XFontSetExtents.max_logical_extent 8 -XFontSetExtents 16 -XSelectionEvent.type 0 -XSelectionEvent.serial 8 -XSelectionEvent.send_event 16 -XSelectionEvent.display 24 -XSelectionEvent.requestor 32 -XSelectionEvent.selection 40 -XSelectionEvent.target 48 -XSelectionEvent.property 56 -XSelectionEvent.time 64 -XSelectionEvent 72 -XArc.x 0 -XArc.y 2 -XArc.width 4 -XArc.height 6 -XArc.angle1 8 -XArc.angle2 10 -XArc 12 -XErrorEvent.type 0 -XErrorEvent.display 8 -XErrorEvent.resourceid 16 -XErrorEvent.serial 24 -XErrorEvent.error_code 32 -XErrorEvent.request_code 33 -XErrorEvent.minor_code 34 -XErrorEvent 40 -XConfigureRequestEvent.type 0 -XConfigureRequestEvent.serial 8 -XConfigureRequestEvent.send_event 16 -XConfigureRequestEvent.display 24 -XConfigureRequestEvent.parent 32 -XConfigureRequestEvent.window 40 -XConfigureRequestEvent.x 48 -XConfigureRequestEvent.y 52 -XConfigureRequestEvent.width 56 -XConfigureRequestEvent.height 60 -XConfigureRequestEvent.border_width 64 -XConfigureRequestEvent.above 72 -XConfigureRequestEvent.detail 80 -XConfigureRequestEvent.value_mask 88 -XConfigureRequestEvent 96 -ScreenFormat.ext_data 0 -ScreenFormat.depth 8 -ScreenFormat.bits_per_pixel 12 -ScreenFormat.scanline_pad 16 -ScreenFormat 24 -XButtonEvent.type 0 -XButtonEvent.serial 8 -XButtonEvent.send_event 16 -XButtonEvent.display 24 -XButtonEvent.window 32 -XButtonEvent.root 40 -XButtonEvent.subwindow 48 -XButtonEvent.time 56 -XButtonEvent.x 64 -XButtonEvent.y 68 -XButtonEvent.x_root 72 -XButtonEvent.y_root 76 -XButtonEvent.state 80 -XButtonEvent.button 84 -XButtonEvent.same_screen 88 -XButtonEvent 96 -XFontProp.name 0 -XFontProp.card32 8 -XFontProp 16 -XIMValuesList.count_values 0 -XIMValuesList.supported_values 8 -XIMValuesList 16 -XKeymapEvent.type 0 -XKeymapEvent.serial 8 -XKeymapEvent.send_event 16 -XKeymapEvent.display 24 -XKeymapEvent.window 32 -XKeymapEvent.key_vector 40 -XKeymapEvent 72 -XTextItem16.chars 0 -XTextItem16.nchars 8 -XTextItem16.delta 12 -XTextItem16.font 16 -XTextItem16 24 -XIMPreeditDrawCallbackStruct.caret 0 -XIMPreeditDrawCallbackStruct.chg_first 4 -XIMPreeditDrawCallbackStruct.chg_length 8 -XIMPreeditDrawCallbackStruct.text 16 -XIMPreeditDrawCallbackStruct 24 -XVisualInfo.visual 0 -XVisualInfo.visualid 8 -XVisualInfo.screen 16 -XVisualInfo.depth 20 -XVisualInfo.class 24 -XVisualInfo.red_mask 32 -XVisualInfo.green_mask 40 -XVisualInfo.blue_mask 48 -XVisualInfo.colormap_size 56 -XVisualInfo.bits_per_rgb 60 -XVisualInfo 64 -XkbControlsNotifyEvent.type 0 -XkbControlsNotifyEvent.serial 8 -XkbControlsNotifyEvent.send_event 16 -XkbControlsNotifyEvent.display 24 -XkbControlsNotifyEvent.time 32 -XkbControlsNotifyEvent.xkb_type 40 -XkbControlsNotifyEvent.device 44 -XkbControlsNotifyEvent.changed_ctrls 48 -XkbControlsNotifyEvent.enabled_ctrls 52 -XkbControlsNotifyEvent.enabled_ctrl_changes 56 -XkbControlsNotifyEvent.num_groups 60 -XkbControlsNotifyEvent.keycode 64 -XkbControlsNotifyEvent.event_type 65 -XkbControlsNotifyEvent.req_major 66 -XkbControlsNotifyEvent.req_minor 67 -XkbControlsNotifyEvent 72 -PropMwmHints.flags 0 -PropMwmHints.functions 8 -PropMwmHints.decorations 16 -PropMwmHints.inputMode 24 -PropMwmHints.status 32 -PropMwmHints 40 -XClientMessageEvent.type 0 -XClientMessageEvent.serial 8 -XClientMessageEvent.send_event 16 -XClientMessageEvent.display 24 -XClientMessageEvent.window 32 -XClientMessageEvent.message_type 40 -XClientMessageEvent.format 48 -XClientMessageEvent.data 56 -XClientMessageEvent 96 -XAnyEvent.type 0 -XAnyEvent.serial 8 -XAnyEvent.send_event 16 -XAnyEvent.display 24 -XAnyEvent.window 32 -XAnyEvent 40 -XkbIndicatorNotifyEvent.type 0 -XkbIndicatorNotifyEvent.serial 8 -XkbIndicatorNotifyEvent.send_event 16 -XkbIndicatorNotifyEvent.display 24 -XkbIndicatorNotifyEvent.time 32 -XkbIndicatorNotifyEvent.xkb_type 40 -XkbIndicatorNotifyEvent.device 44 -XkbIndicatorNotifyEvent.changed 48 -XkbIndicatorNotifyEvent.state 52 -XkbIndicatorNotifyEvent 56 -XIMPreeditStateNotifyCallbackStruct.state 0 -XIMPreeditStateNotifyCallbackStruct 8 -XkbAnyEvent.type 0 -XkbAnyEvent.serial 8 -XkbAnyEvent.send_event 16 -XkbAnyEvent.display 24 -XkbAnyEvent.time 32 -XkbAnyEvent.xkb_type 40 -XkbAnyEvent.device 44 -XkbAnyEvent 48 -XMotionEvent.type 0 -XMotionEvent.serial 8 -XMotionEvent.send_event 16 -XMotionEvent.display 24 -XMotionEvent.window 32 -XMotionEvent.root 40 -XMotionEvent.subwindow 48 -XMotionEvent.time 56 -XMotionEvent.x 64 -XMotionEvent.y 68 -XMotionEvent.x_root 72 -XMotionEvent.y_root 76 -XMotionEvent.state 80 -XMotionEvent.is_hint 84 -XMotionEvent.same_screen 88 -XMotionEvent 96 -XIMHotKeyTriggers.num_hot_key 0 -XIMHotKeyTriggers.key 8 -XIMHotKeyTriggers 16 -XIMStyles.count_styles 0 -XIMStyles.supported_styles 8 -XIMStyles 16 -XkbExtensionDeviceNotifyEvent.type 0 -XkbExtensionDeviceNotifyEvent.serial 8 -XkbExtensionDeviceNotifyEvent.send_event 16 -XkbExtensionDeviceNotifyEvent.display 24 -XkbExtensionDeviceNotifyEvent.time 32 -XkbExtensionDeviceNotifyEvent.xkb_type 40 -XkbExtensionDeviceNotifyEvent.device 44 -XkbExtensionDeviceNotifyEvent.reason 48 -XkbExtensionDeviceNotifyEvent.supported 52 -XkbExtensionDeviceNotifyEvent.unsupported 56 -XkbExtensionDeviceNotifyEvent.first_btn 60 -XkbExtensionDeviceNotifyEvent.num_btns 64 -XkbExtensionDeviceNotifyEvent.leds_defined 68 -XkbExtensionDeviceNotifyEvent.led_state 72 -XkbExtensionDeviceNotifyEvent.led_class 76 -XkbExtensionDeviceNotifyEvent.led_id 80 -XkbExtensionDeviceNotifyEvent 88 -XwcTextItem.chars 0 -XwcTextItem.nchars 8 -XwcTextItem.delta 12 -XwcTextItem.font_set 16 -XwcTextItem 24 -XClassHint.res_name 0 -XClassHint.res_class 8 -XClassHint 16 -XChar2b.byte1 0 -XChar2b.byte2 1 -XChar2b 2 -XSetWindowAttributes.background_pixmap 0 -XSetWindowAttributes.background_pixel 8 -XSetWindowAttributes.border_pixmap 16 -XSetWindowAttributes.border_pixel 24 -XSetWindowAttributes.bit_gravity 32 -XSetWindowAttributes.win_gravity 36 -XSetWindowAttributes.backing_store 40 -XSetWindowAttributes.backing_planes 48 -XSetWindowAttributes.backing_pixel 56 -XSetWindowAttributes.save_under 64 -XSetWindowAttributes.event_mask 72 -XSetWindowAttributes.do_not_propagate_mask 80 -XSetWindowAttributes.override_redirect 88 -XSetWindowAttributes.colormap 96 -XSetWindowAttributes.cursor 104 -XSetWindowAttributes 112 -XRenderPictFormat.id 0 -XRenderPictFormat.type 8 -XRenderPictFormat.depth 12 -XRenderPictFormat.direct 16 -XRenderPictFormat.colormap 32 -XRenderPictFormat 40 -XReparentEvent.type 0 -XReparentEvent.serial 8 -XReparentEvent.send_event 16 -XReparentEvent.display 24 -XReparentEvent.event 32 -XReparentEvent.window 40 -XReparentEvent.parent 48 -XReparentEvent.x 56 -XReparentEvent.y 60 -XReparentEvent.override_redirect 64 -XReparentEvent 72 -XCirculateRequestEvent.type 0 -XCirculateRequestEvent.serial 8 -XCirculateRequestEvent.send_event 16 -XCirculateRequestEvent.display 24 -XCirculateRequestEvent.parent 32 -XCirculateRequestEvent.window 40 -XCirculateRequestEvent.place 48 -XCirculateRequestEvent 56 -XImage.width 0 -XImage.height 4 -XImage.xoffset 8 -XImage.format 12 -XImage.data 16 -XImage.byte_order 24 -XImage.bitmap_unit 28 -XImage.bitmap_bit_order 32 -XImage.bitmap_pad 36 -XImage.depth 40 -XImage.bytes_per_line 44 -XImage.bits_per_pixel 48 -XImage.red_mask 56 -XImage.green_mask 64 -XImage.blue_mask 72 -XImage.obdata 80 -XImage.f.create_image 88 -XImage.f.destroy_image 96 -XImage.f.get_pixel 104 -XImage.f.put_pixel 112 -XImage.f.sub_image 120 -XImage.f.add_pixel 128 -XImage 136 -XKeyEvent.type 0 -XKeyEvent.serial 8 -XKeyEvent.send_event 16 -XKeyEvent.display 24 -XKeyEvent.window 32 -XKeyEvent.root 40 -XKeyEvent.subwindow 48 -XKeyEvent.time 56 -XKeyEvent.x 64 -XKeyEvent.y 68 -XKeyEvent.x_root 72 -XKeyEvent.y_root 76 -XKeyEvent.state 80 -XKeyEvent.keycode 84 -XKeyEvent.same_screen 88 -XKeyEvent 96 -XkbActionMessageEvent.type 0 -XkbActionMessageEvent.serial 8 -XkbActionMessageEvent.send_event 16 -XkbActionMessageEvent.display 24 -XkbActionMessageEvent.time 32 -XkbActionMessageEvent.xkb_type 40 -XkbActionMessageEvent.device 44 -XkbActionMessageEvent.keycode 48 -XkbActionMessageEvent.press 52 -XkbActionMessageEvent.key_event_follows 56 -XkbActionMessageEvent.group 60 -XkbActionMessageEvent.mods 64 -XkbActionMessageEvent.message 68 -XkbActionMessageEvent 80 -XdbeSwapInfo.swap_window 0 -XdbeSwapInfo.swap_action 8 -XdbeSwapInfo 16 -XTextItem.chars 0 -XTextItem.nchars 8 -XTextItem.delta 12 -XTextItem.font 16 -XTextItem 24 -XModifierKeymap.max_keypermod 0 -XModifierKeymap.modifiermap 8 -XModifierKeymap 16 -XCharStruct.lbearing 0 -XCharStruct.rbearing 2 -XCharStruct.width 4 -XCharStruct.ascent 6 -XCharStruct.descent 8 -XCharStruct.attributes 10 -XCharStruct 12 -XGravityEvent.type 0 -XGravityEvent.serial 8 -XGravityEvent.send_event 16 -XGravityEvent.display 24 -XGravityEvent.event 32 -XGravityEvent.window 40 -XGravityEvent.x 48 -XGravityEvent.y 52 -XGravityEvent 56 -Visual.ext_data 0 -Visual.visualid 8 -Visual.class 16 -Visual.red_mask 24 -Visual.green_mask 32 -Visual.blue_mask 40 -Visual.bits_per_rgb 48 -Visual.map_entries 52 -Visual 56 -XOMOrientation.num_orientation 0 -XOMOrientation.orientation 8 -XOMOrientation 16 -XkbAccessXNotifyEvent.type 0 -XkbAccessXNotifyEvent.serial 8 -XkbAccessXNotifyEvent.send_event 16 -XkbAccessXNotifyEvent.display 24 -XkbAccessXNotifyEvent.time 32 -XkbAccessXNotifyEvent.xkb_type 40 -XkbAccessXNotifyEvent.device 44 -XkbAccessXNotifyEvent.detail 48 -XkbAccessXNotifyEvent.keycode 52 -XkbAccessXNotifyEvent.sk_delay 56 -XkbAccessXNotifyEvent.debounce_delay 60 -XkbAccessXNotifyEvent 64 -XWindowAttributes.x 0 -XWindowAttributes.y 4 -XWindowAttributes.width 8 -XWindowAttributes.height 12 -XWindowAttributes.border_width 16 -XWindowAttributes.depth 20 -XWindowAttributes.visual 24 -XWindowAttributes.root 32 -XWindowAttributes.class 40 -XWindowAttributes.bit_gravity 44 -XWindowAttributes.win_gravity 48 -XWindowAttributes.backing_store 52 -XWindowAttributes.backing_planes 56 -XWindowAttributes.backing_pixel 64 -XWindowAttributes.save_under 72 -XWindowAttributes.colormap 80 -XWindowAttributes.map_installed 88 -XWindowAttributes.map_state 92 -XWindowAttributes.all_event_masks 96 -XWindowAttributes.your_event_mask 104 -XWindowAttributes.do_not_propagate_mask 112 -XWindowAttributes.override_redirect 120 -XWindowAttributes.screen 128 -XWindowAttributes 136 -XmbTextItem.chars 0 -XmbTextItem.nchars 8 -XmbTextItem.delta 12 -XmbTextItem.font_set 16 -XmbTextItem 24 -XMappingEvent.type 0 -XMappingEvent.serial 8 -XMappingEvent.send_event 16 -XMappingEvent.display 24 -XMappingEvent.window 32 -XMappingEvent.request 40 -XMappingEvent.first_keycode 44 -XMappingEvent.count 48 -XMappingEvent 56 -XSizeHints.flags 0 -XSizeHints.x 8 -XSizeHints.y 12 -XSizeHints.width 16 -XSizeHints.height 20 -XSizeHints.min_width 24 -XSizeHints.min_height 28 -XSizeHints.max_width 32 -XSizeHints.max_height 36 -XSizeHints.width_inc 40 -XSizeHints.height_inc 44 -XSizeHints.min_aspect.x 48 -XSizeHints.min_aspect.y 52 -XSizeHints.max_aspect.x 56 -XSizeHints.max_aspect.y 60 -XSizeHints.base_width 64 -XSizeHints.base_height 68 -XSizeHints.win_gravity 72 -XSizeHints 80 -XUnmapEvent.type 0 -XUnmapEvent.serial 8 -XUnmapEvent.send_event 16 -XUnmapEvent.display 24 -XUnmapEvent.event 32 -XUnmapEvent.window 40 -XUnmapEvent.from_configure 48 -XUnmapEvent 56 -awtImageData.Depth 0 -awtImageData.wsImageFormat 4 -awtImageData.clrdata 16 -awtImageData.convert 48 -awtImageData 560 -XkbStateNotifyEvent.type 0 -XkbStateNotifyEvent.serial 8 -XkbStateNotifyEvent.send_event 16 -XkbStateNotifyEvent.display 24 -XkbStateNotifyEvent.time 32 -XkbStateNotifyEvent.xkb_type 40 -XkbStateNotifyEvent.device 44 -XkbStateNotifyEvent.changed 48 -XkbStateNotifyEvent.group 52 -XkbStateNotifyEvent.base_group 56 -XkbStateNotifyEvent.latched_group 60 -XkbStateNotifyEvent.locked_group 64 -XkbStateNotifyEvent.mods 68 -XkbStateNotifyEvent.base_mods 72 -XkbStateNotifyEvent.latched_mods 76 -XkbStateNotifyEvent.locked_mods 80 -XkbStateNotifyEvent.compat_state 84 -XkbStateNotifyEvent.grab_mods 88 -XkbStateNotifyEvent.compat_grab_mods 89 -XkbStateNotifyEvent.lookup_mods 90 -XkbStateNotifyEvent.compat_lookup_mods 91 -XkbStateNotifyEvent.ptr_buttons 92 -XkbStateNotifyEvent.keycode 96 -XkbStateNotifyEvent.event_type 97 -XkbStateNotifyEvent.req_major 98 -XkbStateNotifyEvent.req_minor 99 -XkbStateNotifyEvent 104 -XExposeEvent.type 0 -XExposeEvent.serial 8 -XExposeEvent.send_event 16 -XExposeEvent.display 24 -XExposeEvent.window 32 -XExposeEvent.x 40 -XExposeEvent.y 44 -XExposeEvent.width 48 -XExposeEvent.height 52 -XExposeEvent.count 56 -XExposeEvent 64 -XkbMapNotifyEvent.type 0 -XkbMapNotifyEvent.serial 8 -XkbMapNotifyEvent.send_event 16 -XkbMapNotifyEvent.display 24 -XkbMapNotifyEvent.time 32 -XkbMapNotifyEvent.xkb_type 40 -XkbMapNotifyEvent.device 44 -XkbMapNotifyEvent.changed 48 -XkbMapNotifyEvent.flags 52 -XkbMapNotifyEvent.first_type 56 -XkbMapNotifyEvent.num_types 60 -XkbMapNotifyEvent.min_key_code 64 -XkbMapNotifyEvent.max_key_code 65 -XkbMapNotifyEvent.first_key_sym 66 -XkbMapNotifyEvent.first_key_act 67 -XkbMapNotifyEvent.first_key_behavior 68 -XkbMapNotifyEvent.first_key_explicit 69 -XkbMapNotifyEvent.first_modmap_key 70 -XkbMapNotifyEvent.first_vmodmap_key 71 -XkbMapNotifyEvent.num_key_syms 72 -XkbMapNotifyEvent.num_key_acts 76 -XkbMapNotifyEvent.num_key_behaviors 80 -XkbMapNotifyEvent.num_key_explicit 84 -XkbMapNotifyEvent.num_modmap_keys 88 -XkbMapNotifyEvent.num_vmodmap_keys 92 -XkbMapNotifyEvent.vmods 96 -XkbMapNotifyEvent 104 -XGCValues.function 0 -XGCValues.plane_mask 8 -XGCValues.foreground 16 -XGCValues.background 24 -XGCValues.line_width 32 -XGCValues.line_style 36 -XGCValues.cap_style 40 -XGCValues.join_style 44 -XGCValues.fill_style 48 -XGCValues.fill_rule 52 -XGCValues.arc_mode 56 -XGCValues.tile 64 -XGCValues.stipple 72 -XGCValues.ts_x_origin 80 -XGCValues.ts_y_origin 84 -XGCValues.font 88 -XGCValues.subwindow_mode 96 -XGCValues.graphics_exposures 100 -XGCValues.clip_x_origin 104 -XGCValues.clip_y_origin 108 -XGCValues.clip_mask 112 -XGCValues.dash_offset 120 -XGCValues.dashes 124 -XGCValues 128 -XFocusChangeEvent.type 0 -XFocusChangeEvent.serial 8 -XFocusChangeEvent.send_event 16 -XFocusChangeEvent.display 24 -XFocusChangeEvent.window 32 -XFocusChangeEvent.mode 40 -XFocusChangeEvent.detail 44 -XFocusChangeEvent 48 -XPixmapFormatValues.depth 0 -XPixmapFormatValues.bits_per_pixel 4 -XPixmapFormatValues.scanline_pad 8 -XPixmapFormatValues 12 -XMapEvent.type 0 -XMapEvent.serial 8 -XMapEvent.send_event 16 -XMapEvent.display 24 -XMapEvent.event 32 -XMapEvent.window 40 -XMapEvent.override_redirect 48 -XMapEvent 56 -XkbBellNotifyEvent.type 0 -XkbBellNotifyEvent.serial 8 -XkbBellNotifyEvent.send_event 16 -XkbBellNotifyEvent.display 24 -XkbBellNotifyEvent.time 32 -XkbBellNotifyEvent.xkb_type 40 -XkbBellNotifyEvent.device 44 -XkbBellNotifyEvent.percent 48 -XkbBellNotifyEvent.pitch 52 -XkbBellNotifyEvent.duration 56 -XkbBellNotifyEvent.bell_class 60 -XkbBellNotifyEvent.bell_id 64 -XkbBellNotifyEvent.name 72 -XkbBellNotifyEvent.window 80 -XkbBellNotifyEvent.event_only 88 -XkbBellNotifyEvent 96 -XIMStringConversionText.length 0 -XIMStringConversionText.feedback 8 -XIMStringConversionText.encoding_is_wchar 16 -XIMStringConversionText.string 24 -XIMStringConversionText 32 -XKeyboardState.key_click_percent 0 -XKeyboardState.bell_percent 4 -XKeyboardState.bell_pitch 8 -XKeyboardState.bell_duration 12 -XKeyboardState.led_mask 16 -XKeyboardState.global_auto_repeat 24 -XKeyboardState.auto_repeats 28 -XKeyboardState 64 -XkbEvent.type 0 -XkbEvent.any 0 -XkbEvent.new_kbd 0 -XkbEvent.map 0 -XkbEvent.state 0 -XkbEvent.ctrls 0 -XkbEvent.indicators 0 -XkbEvent.names 0 -XkbEvent.compat 0 -XkbEvent.bell 0 -XkbEvent.message 0 -XkbEvent.accessx 0 -XkbEvent.device 0 -XkbEvent.core 0 -XkbEvent 192 -XPoint.x 0 -XPoint.y 2 -XPoint 4 -XSegment.x1 0 -XSegment.y1 2 -XSegment.x2 4 -XSegment.y2 6 -XSegment 8 -XIconSize.min_width 0 -XIconSize.min_height 4 -XIconSize.max_width 8 -XIconSize.max_height 12 -XIconSize.width_inc 16 -XIconSize.height_inc 20 -XIconSize 24 -XIMCallback.client_data 0 -XIMCallback.callback 8 -XIMCallback 16 -XConfigureEvent.type 0 -XConfigureEvent.serial 8 -XConfigureEvent.send_event 16 -XConfigureEvent.display 24 -XConfigureEvent.event 32 -XConfigureEvent.window 40 -XConfigureEvent.x 48 -XConfigureEvent.y 52 -XConfigureEvent.width 56 -XConfigureEvent.height 60 -XConfigureEvent.border_width 64 -XConfigureEvent.above 72 -XConfigureEvent.override_redirect 80 -XConfigureEvent 88 -XRectangle.x 0 -XRectangle.y 2 -XRectangle.width 4 -XRectangle.height 6 -XRectangle 8 -XkbNamesNotifyEvent.type 0 -XkbNamesNotifyEvent.serial 8 -XkbNamesNotifyEvent.send_event 16 -XkbNamesNotifyEvent.display 24 -XkbNamesNotifyEvent.time 32 -XkbNamesNotifyEvent.xkb_type 40 -XkbNamesNotifyEvent.device 44 -XkbNamesNotifyEvent.changed 48 -XkbNamesNotifyEvent.first_type 52 -XkbNamesNotifyEvent.num_types 56 -XkbNamesNotifyEvent.first_lvl 60 -XkbNamesNotifyEvent.num_lvls 64 -XkbNamesNotifyEvent.num_aliases 68 -XkbNamesNotifyEvent.num_radio_groups 72 -XkbNamesNotifyEvent.changed_vmods 76 -XkbNamesNotifyEvent.changed_groups 80 -XkbNamesNotifyEvent.changed_indicators 84 -XkbNamesNotifyEvent.first_key 88 -XkbNamesNotifyEvent.num_keys 92 -XkbNamesNotifyEvent 96 -XCreateWindowEvent.type 0 -XCreateWindowEvent.serial 8 -XCreateWindowEvent.send_event 16 -XCreateWindowEvent.display 24 -XCreateWindowEvent.parent 32 -XCreateWindowEvent.window 40 -XCreateWindowEvent.x 48 -XCreateWindowEvent.y 52 -XCreateWindowEvent.width 56 -XCreateWindowEvent.height 60 -XCreateWindowEvent.border_width 64 -XCreateWindowEvent.override_redirect 68 -XCreateWindowEvent 72 -XVisibilityEvent.type 0 -XVisibilityEvent.serial 8 -XVisibilityEvent.send_event 16 -XVisibilityEvent.display 24 -XVisibilityEvent.window 32 -XVisibilityEvent.state 40 -XVisibilityEvent 48 -XWMHints.flags 0 -XWMHints.initial_state 12 -XWMHints.icon_pixmap 16 -XWMHints.icon_window 24 -XWMHints.icon_x 32 -XWMHints.icon_y 36 -XWMHints.icon_mask 40 -XWMHints.input 8 -XWMHints.window_group 48 -XWMHints 56 -XCrossingEvent.type 0 -XCrossingEvent.serial 8 -XCrossingEvent.send_event 16 -XCrossingEvent.display 24 -XCrossingEvent.window 32 -XCrossingEvent.root 40 -XCrossingEvent.subwindow 48 -XCrossingEvent.time 56 -XCrossingEvent.x 64 -XCrossingEvent.y 68 -XCrossingEvent.x_root 72 -XCrossingEvent.y_root 76 -XCrossingEvent.mode 80 -XCrossingEvent.detail 84 -XCrossingEvent.same_screen 88 -XCrossingEvent.focus 92 -XCrossingEvent.state 96 -XCrossingEvent 104 -XSelectionRequestEvent.type 0 -XSelectionRequestEvent.serial 8 -XSelectionRequestEvent.send_event 16 -XSelectionRequestEvent.display 24 -XSelectionRequestEvent.owner 32 -XSelectionRequestEvent.requestor 40 -XSelectionRequestEvent.selection 48 -XSelectionRequestEvent.target 56 -XSelectionRequestEvent.property 64 -XSelectionRequestEvent.time 72 -XSelectionRequestEvent 80 -XNoExposeEvent.type 0 -XNoExposeEvent.serial 8 -XNoExposeEvent.send_event 16 -XNoExposeEvent.display 24 -XNoExposeEvent.drawable 32 -XNoExposeEvent.major_code 40 -XNoExposeEvent.minor_code 44 -XNoExposeEvent 48 -XHostAddress.family 0 -XHostAddress.length 4 -XHostAddress.address 8 -XHostAddress 16 -XColormapEvent.type 0 -XColormapEvent.serial 8 -XColormapEvent.send_event 16 -XColormapEvent.display 24 -XColormapEvent.window 32 -XColormapEvent.colormap 40 -XColormapEvent.new 48 -XColormapEvent.state 52 -XColormapEvent 56 -ColorEntry.r 0 -ColorEntry.g 1 -ColorEntry.b 2 -ColorEntry.flags 3 -ColorEntry 4 -XResizeRequestEvent.type 0 -XResizeRequestEvent.serial 8 -XResizeRequestEvent.send_event 16 -XResizeRequestEvent.display 24 -XResizeRequestEvent.window 32 -XResizeRequestEvent.width 40 -XResizeRequestEvent.height 44 -XResizeRequestEvent 48 -Depth.depth 0 -Depth.nvisuals 4 -Depth.visuals 8 -Depth 16 -XPropertyEvent.type 0 -XPropertyEvent.serial 8 -XPropertyEvent.send_event 16 -XPropertyEvent.display 24 -XPropertyEvent.window 32 -XPropertyEvent.atom 40 -XPropertyEvent.time 48 -XPropertyEvent.state 56 -XPropertyEvent 64 -XDestroyWindowEvent.type 0 -XDestroyWindowEvent.serial 8 -XDestroyWindowEvent.send_event 16 -XDestroyWindowEvent.display 24 -XDestroyWindowEvent.event 32 -XDestroyWindowEvent.window 40 -XDestroyWindowEvent 48 -XStandardColormap.colormap 0 -XStandardColormap.red_max 8 -XStandardColormap.red_mult 16 -XStandardColormap.green_max 24 -XStandardColormap.green_mult 32 -XStandardColormap.blue_max 40 -XStandardColormap.blue_mult 48 -XStandardColormap.base_pixel 56 -XStandardColormap.visualid 64 -XStandardColormap.killid 72 -XStandardColormap 80 -XComposeStatus.compose_ptr 0 -XComposeStatus.chars_matched 8 -XComposeStatus 16 -AwtGraphicsConfigData.awt_depth 0 -AwtGraphicsConfigData.awt_cmap 8 -AwtGraphicsConfigData.awt_visInfo 16 -AwtGraphicsConfigData.awt_num_colors 80 -AwtGraphicsConfigData.awtImage 88 -AwtGraphicsConfigData.AwtColorMatch 96 -AwtGraphicsConfigData.monoImage 104 -AwtGraphicsConfigData.monoPixmap 112 -AwtGraphicsConfigData.monoPixmapWidth 120 -AwtGraphicsConfigData.monoPixmapHeight 124 -AwtGraphicsConfigData.monoPixmapGC 128 -AwtGraphicsConfigData.pixelStride 136 -AwtGraphicsConfigData.color_data 144 -AwtGraphicsConfigData.glxInfo 152 -AwtGraphicsConfigData.isTranslucencySupported 160 -AwtGraphicsConfigData.renderPictFormat 168 -AwtGraphicsConfigData 208 -XColor.pixel 0 -XColor.red 8 -XColor.green 10 -XColor.blue 12 -XColor.flags 14 -XColor.pad 15 -XColor 16 -XTextProperty.value 0 -XTextProperty.encoding 8 -XTextProperty.format 16 -XTextProperty.nitems 24 -XTextProperty 32
--- a/make/data/x11wrappergen/sizes.64-solaris-i386 Thu Mar 08 14:31:54 2018 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1017 +0,0 @@ -long 8 -int 4 -short 2 -ptr 8 -Bool 4 -Atom 8 -Window 8 -XExtData.number 0 -XExtData.next 8 -XExtData.free_private 16 -XExtData.private_data 24 -XExtData 32 -XIMStringConversionCallbackStruct.position 0 -XIMStringConversionCallbackStruct.direction 4 -XIMStringConversionCallbackStruct.operation 8 -XIMStringConversionCallbackStruct.factor 10 -XIMStringConversionCallbackStruct.text 16 -XIMStringConversionCallbackStruct 24 -XkbNewKeyboardNotifyEvent.type 0 -XkbNewKeyboardNotifyEvent.serial 8 -XkbNewKeyboardNotifyEvent.send_event 16 -XkbNewKeyboardNotifyEvent.display 24 -XkbNewKeyboardNotifyEvent.time 32 -XkbNewKeyboardNotifyEvent.xkb_type 40 -XkbNewKeyboardNotifyEvent.device 44 -XkbNewKeyboardNotifyEvent.old_device 48 -XkbNewKeyboardNotifyEvent.min_key_code 52 -XkbNewKeyboardNotifyEvent.max_key_code 56 -XkbNewKeyboardNotifyEvent.old_min_key_code 60 -XkbNewKeyboardNotifyEvent.old_max_key_code 64 -XkbNewKeyboardNotifyEvent.changed 68 -XkbNewKeyboardNotifyEvent.req_major 72 -XkbNewKeyboardNotifyEvent.req_minor 73 -XkbNewKeyboardNotifyEvent 80 -XTimeCoord.time 0 -XTimeCoord.x 8 -XTimeCoord.y 10 -XTimeCoord 16 -XkbCompatMapNotifyEvent.type 0 -XkbCompatMapNotifyEvent.serial 8 -XkbCompatMapNotifyEvent.send_event 16 -XkbCompatMapNotifyEvent.display 24 -XkbCompatMapNotifyEvent.time 32 -XkbCompatMapNotifyEvent.xkb_type 40 -XkbCompatMapNotifyEvent.device 44 -XkbCompatMapNotifyEvent.changed_groups 48 -XkbCompatMapNotifyEvent.first_si 52 -XkbCompatMapNotifyEvent.num_si 56 -XkbCompatMapNotifyEvent.num_total_si 60 -XkbCompatMapNotifyEvent 64 -XIMStatusDrawCallbackStruct.type 0 -XIMStatusDrawCallbackStruct.data 8 -XIMStatusDrawCallbackStruct 16 -XKeyboardControl.key_click_percent 0 -XKeyboardControl.bell_percent 4 -XKeyboardControl.bell_pitch 8 -XKeyboardControl.bell_duration 12 -XKeyboardControl.led 16 -XKeyboardControl.led_mode 20 -XKeyboardControl.key 24 -XKeyboardControl.auto_repeat_mode 28 -XKeyboardControl 32 -XSelectionClearEvent.type 0 -XSelectionClearEvent.serial 8 -XSelectionClearEvent.send_event 16 -XSelectionClearEvent.display 24 -XSelectionClearEvent.window 32 -XSelectionClearEvent.selection 40 -XSelectionClearEvent.time 48 -XSelectionClearEvent 56 -XWindowChanges.x 0 -XWindowChanges.y 4 -XWindowChanges.width 8 -XWindowChanges.height 12 -XWindowChanges.border_width 16 -XWindowChanges.sibling 24 -XWindowChanges.stack_mode 32 -XWindowChanges 40 -XIMPreeditCaretCallbackStruct.position 0 -XIMPreeditCaretCallbackStruct.direction 4 -XIMPreeditCaretCallbackStruct.style 8 -XIMPreeditCaretCallbackStruct 12 -XOMCharSetList.charset_count 0 -XOMCharSetList.charset_list 8 -XOMCharSetList 16 -XOMFontInfo.num_font 0 -XOMFontInfo.font_struct_list 8 -XOMFontInfo.font_name_list 16 -XOMFontInfo 24 -AwtScreenData.numConfigs 0 -AwtScreenData.root 8 -AwtScreenData.whitepixel 16 -AwtScreenData.blackpixel 24 -AwtScreenData.defaultConfig 32 -AwtScreenData.configs 40 -AwtScreenData 48 -XIMHotKeyTrigger.keysym 0 -XIMHotKeyTrigger.modifier 8 -XIMHotKeyTrigger.modifier_mask 12 -XIMHotKeyTrigger 16 -XCirculateEvent.type 0 -XCirculateEvent.serial 8 -XCirculateEvent.send_event 16 -XCirculateEvent.display 24 -XCirculateEvent.event 32 -XCirculateEvent.window 40 -XCirculateEvent.place 48 -XCirculateEvent 56 -Screen.ext_data 0 -Screen.display 8 -Screen.root 16 -Screen.width 24 -Screen.height 28 -Screen.mwidth 32 -Screen.mheight 36 -Screen.ndepths 40 -Screen.depths 48 -Screen.root_depth 56 -Screen.root_visual 64 -Screen.default_gc 72 -Screen.cmap 80 -Screen.white_pixel 88 -Screen.black_pixel 96 -Screen.max_maps 104 -Screen.min_maps 108 -Screen.backing_store 112 -Screen.save_unders 116 -Screen.root_input_mask 120 -Screen 128 -XMapRequestEvent.type 0 -XMapRequestEvent.serial 8 -XMapRequestEvent.send_event 16 -XMapRequestEvent.display 24 -XMapRequestEvent.parent 32 -XMapRequestEvent.window 40 -XMapRequestEvent 48 -XIMText.length 0 -XIMText.feedback 8 -XIMText.encoding_is_wchar 16 -XIMText.string 24 -XIMText 32 -XGraphicsExposeEvent.type 0 -XGraphicsExposeEvent.serial 8 -XGraphicsExposeEvent.send_event 16 -XGraphicsExposeEvent.display 24 -XGraphicsExposeEvent.drawable 32 -XGraphicsExposeEvent.x 40 -XGraphicsExposeEvent.y 44 -XGraphicsExposeEvent.width 48 -XGraphicsExposeEvent.height 52 -XGraphicsExposeEvent.count 56 -XGraphicsExposeEvent.major_code 60 -XGraphicsExposeEvent.minor_code 64 -XGraphicsExposeEvent 72 -XEvent.type 0 -XEvent.xany 0 -XEvent.xkey 0 -XEvent.xbutton 0 -XEvent.xmotion 0 -XEvent.xcrossing 0 -XEvent.xfocus 0 -XEvent.xexpose 0 -XEvent.xgraphicsexpose 0 -XEvent.xnoexpose 0 -XEvent.xvisibility 0 -XEvent.xcreatewindow 0 -XEvent.xdestroywindow 0 -XEvent.xunmap 0 -XEvent.xmap 0 -XEvent.xmaprequest 0 -XEvent.xreparent 0 -XEvent.xconfigure 0 -XEvent.xgravity 0 -XEvent.xresizerequest 0 -XEvent.xconfigurerequest 0 -XEvent.xcirculate 0 -XEvent.xcirculaterequest 0 -XEvent.xproperty 0 -XEvent.xselectionclear 0 -XEvent.xselectionrequest 0 -XEvent.xselection 0 -XEvent.xcolormap 0 -XEvent.xclient 0 -XEvent.xmapping 0 -XEvent.xerror 0 -XEvent.xkeymap 0 -XEvent.pad 0 -XEvent 192 -XRenderDirectFormat.red 0 -XRenderDirectFormat.redMask 2 -XRenderDirectFormat.green 4 -XRenderDirectFormat.greenMask 6 -XRenderDirectFormat.blue 8 -XRenderDirectFormat.blueMask 10 -XRenderDirectFormat.alpha 12 -XRenderDirectFormat.alphaMask 14 -XRenderDirectFormat 16 -ColorData.awt_Colors 0 -ColorData.awt_numICMcolors 8 -ColorData.awt_icmLUT 16 -ColorData.awt_icmLUT2Colors 24 -ColorData.img_grays 32 -ColorData.img_clr_tbl 40 -ColorData.img_oda_red 48 -ColorData.img_oda_green 56 -ColorData.img_oda_blue 64 -ColorData.pGrayInverseLutData 72 -ColorData.screendata 80 -ColorData.representsPrimaries 84 -ColorData 88 -XFontStruct.ext_data 0 -XFontStruct.fid 8 -XFontStruct.direction 16 -XFontStruct.min_char_or_byte2 20 -XFontStruct.max_char_or_byte2 24 -XFontStruct.min_byte1 28 -XFontStruct.max_byte1 32 -XFontStruct.all_chars_exist 36 -XFontStruct.n_properties 44 -XFontStruct.properties 48 -XFontStruct.min_bounds 56 -XFontStruct.max_bounds 68 -XFontStruct.per_char 80 -XFontStruct.ascent 88 -XFontStruct.descent 92 -XFontStruct 96 -XExtCodes.extension 0 -XExtCodes.major_opcode 4 -XExtCodes.first_event 8 -XExtCodes.first_error 12 -XExtCodes 16 -XFontSetExtents.max_ink_extent 0 -XFontSetExtents.max_logical_extent 8 -XFontSetExtents 16 -XSelectionEvent.type 0 -XSelectionEvent.serial 8 -XSelectionEvent.send_event 16 -XSelectionEvent.display 24 -XSelectionEvent.requestor 32 -XSelectionEvent.selection 40 -XSelectionEvent.target 48 -XSelectionEvent.property 56 -XSelectionEvent.time 64 -XSelectionEvent 72 -XArc.x 0 -XArc.y 2 -XArc.width 4 -XArc.height 6 -XArc.angle1 8 -XArc.angle2 10 -XArc 12 -XErrorEvent.type 0 -XErrorEvent.display 8 -XErrorEvent.resourceid 16 -XErrorEvent.serial 24 -XErrorEvent.error_code 32 -XErrorEvent.request_code 33 -XErrorEvent.minor_code 34 -XErrorEvent 40 -XConfigureRequestEvent.type 0 -XConfigureRequestEvent.serial 8 -XConfigureRequestEvent.send_event 16 -XConfigureRequestEvent.display 24 -XConfigureRequestEvent.parent 32 -XConfigureRequestEvent.window 40 -XConfigureRequestEvent.x 48 -XConfigureRequestEvent.y 52 -XConfigureRequestEvent.width 56 -XConfigureRequestEvent.height 60 -XConfigureRequestEvent.border_width 64 -XConfigureRequestEvent.above 72 -XConfigureRequestEvent.detail 80 -XConfigureRequestEvent.value_mask 88 -XConfigureRequestEvent 96 -ScreenFormat.ext_data 0 -ScreenFormat.depth 8 -ScreenFormat.bits_per_pixel 12 -ScreenFormat.scanline_pad 16 -ScreenFormat 24 -XButtonEvent.type 0 -XButtonEvent.serial 8 -XButtonEvent.send_event 16 -XButtonEvent.display 24 -XButtonEvent.window 32 -XButtonEvent.root 40 -XButtonEvent.subwindow 48 -XButtonEvent.time 56 -XButtonEvent.x 64 -XButtonEvent.y 68 -XButtonEvent.x_root 72 -XButtonEvent.y_root 76 -XButtonEvent.state 80 -XButtonEvent.button 84 -XButtonEvent.same_screen 88 -XButtonEvent 96 -XFontProp.name 0 -XFontProp.card32 8 -XFontProp 16 -XIMValuesList.count_values 0 -XIMValuesList.supported_values 8 -XIMValuesList 16 -XKeymapEvent.type 0 -XKeymapEvent.serial 8 -XKeymapEvent.send_event 16 -XKeymapEvent.display 24 -XKeymapEvent.window 32 -XKeymapEvent.key_vector 40 -XKeymapEvent 72 -XTextItem16.chars 0 -XTextItem16.nchars 8 -XTextItem16.delta 12 -XTextItem16.font 16 -XTextItem16 24 -XIMPreeditDrawCallbackStruct.caret 0 -XIMPreeditDrawCallbackStruct.chg_first 4 -XIMPreeditDrawCallbackStruct.chg_length 8 -XIMPreeditDrawCallbackStruct.text 16 -XIMPreeditDrawCallbackStruct 24 -XVisualInfo.visual 0 -XVisualInfo.visualid 8 -XVisualInfo.screen 16 -XVisualInfo.depth 20 -XVisualInfo.class 24 -XVisualInfo.red_mask 32 -XVisualInfo.green_mask 40 -XVisualInfo.blue_mask 48 -XVisualInfo.colormap_size 56 -XVisualInfo.bits_per_rgb 60 -XVisualInfo 64 -XkbControlsNotifyEvent.type 0 -XkbControlsNotifyEvent.serial 8 -XkbControlsNotifyEvent.send_event 16 -XkbControlsNotifyEvent.display 24 -XkbControlsNotifyEvent.time 32 -XkbControlsNotifyEvent.xkb_type 40 -XkbControlsNotifyEvent.device 44 -XkbControlsNotifyEvent.changed_ctrls 48 -XkbControlsNotifyEvent.enabled_ctrls 52 -XkbControlsNotifyEvent.enabled_ctrl_changes 56 -XkbControlsNotifyEvent.num_groups 60 -XkbControlsNotifyEvent.keycode 64 -XkbControlsNotifyEvent.event_type 65 -XkbControlsNotifyEvent.req_major 66 -XkbControlsNotifyEvent.req_minor 67 -XkbControlsNotifyEvent 72 -PropMwmHints.flags 0 -PropMwmHints.functions 8 -PropMwmHints.decorations 16 -PropMwmHints.inputMode 24 -PropMwmHints.status 32 -PropMwmHints 40 -XClientMessageEvent.type 0 -XClientMessageEvent.serial 8 -XClientMessageEvent.send_event 16 -XClientMessageEvent.display 24 -XClientMessageEvent.window 32 -XClientMessageEvent.message_type 40 -XClientMessageEvent.format 48 -XClientMessageEvent.data 56 -XClientMessageEvent 96 -XAnyEvent.type 0 -XAnyEvent.serial 8 -XAnyEvent.send_event 16 -XAnyEvent.display 24 -XAnyEvent.window 32 -XAnyEvent 40 -XkbIndicatorNotifyEvent.type 0 -XkbIndicatorNotifyEvent.serial 8 -XkbIndicatorNotifyEvent.send_event 16 -XkbIndicatorNotifyEvent.display 24 -XkbIndicatorNotifyEvent.time 32 -XkbIndicatorNotifyEvent.xkb_type 40 -XkbIndicatorNotifyEvent.device 44 -XkbIndicatorNotifyEvent.changed 48 -XkbIndicatorNotifyEvent.state 52 -XkbIndicatorNotifyEvent 56 -XIMPreeditStateNotifyCallbackStruct.state 0 -XIMPreeditStateNotifyCallbackStruct 8 -XkbAnyEvent.type 0 -XkbAnyEvent.serial 8 -XkbAnyEvent.send_event 16 -XkbAnyEvent.display 24 -XkbAnyEvent.time 32 -XkbAnyEvent.xkb_type 40 -XkbAnyEvent.device 44 -XkbAnyEvent 48 -XMotionEvent.type 0 -XMotionEvent.serial 8 -XMotionEvent.send_event 16 -XMotionEvent.display 24 -XMotionEvent.window 32 -XMotionEvent.root 40 -XMotionEvent.subwindow 48 -XMotionEvent.time 56 -XMotionEvent.x 64 -XMotionEvent.y 68 -XMotionEvent.x_root 72 -XMotionEvent.y_root 76 -XMotionEvent.state 80 -XMotionEvent.is_hint 84 -XMotionEvent.same_screen 88 -XMotionEvent 96 -XIMHotKeyTriggers.num_hot_key 0 -XIMHotKeyTriggers.key 8 -XIMHotKeyTriggers 16 -XIMStyles.count_styles 0 -XIMStyles.supported_styles 8 -XIMStyles 16 -XkbExtensionDeviceNotifyEvent.type 0 -XkbExtensionDeviceNotifyEvent.serial 8 -XkbExtensionDeviceNotifyEvent.send_event 16 -XkbExtensionDeviceNotifyEvent.display 24 -XkbExtensionDeviceNotifyEvent.time 32 -XkbExtensionDeviceNotifyEvent.xkb_type 40 -XkbExtensionDeviceNotifyEvent.device 44 -XkbExtensionDeviceNotifyEvent.reason 48 -XkbExtensionDeviceNotifyEvent.supported 52 -XkbExtensionDeviceNotifyEvent.unsupported 56 -XkbExtensionDeviceNotifyEvent.first_btn 60 -XkbExtensionDeviceNotifyEvent.num_btns 64 -XkbExtensionDeviceNotifyEvent.leds_defined 68 -XkbExtensionDeviceNotifyEvent.led_state 72 -XkbExtensionDeviceNotifyEvent.led_class 76 -XkbExtensionDeviceNotifyEvent.led_id 80 -XkbExtensionDeviceNotifyEvent 88 -XwcTextItem.chars 0 -XwcTextItem.nchars 8 -XwcTextItem.delta 12 -XwcTextItem.font_set 16 -XwcTextItem 24 -XClassHint.res_name 0 -XClassHint.res_class 8 -XClassHint 16 -XChar2b.byte1 0 -XChar2b.byte2 1 -XChar2b 2 -XSetWindowAttributes.background_pixmap 0 -XSetWindowAttributes.background_pixel 8 -XSetWindowAttributes.border_pixmap 16 -XSetWindowAttributes.border_pixel 24 -XSetWindowAttributes.bit_gravity 32 -XSetWindowAttributes.win_gravity 36 -XSetWindowAttributes.backing_store 40 -XSetWindowAttributes.backing_planes 48 -XSetWindowAttributes.backing_pixel 56 -XSetWindowAttributes.save_under 64 -XSetWindowAttributes.event_mask 72 -XSetWindowAttributes.do_not_propagate_mask 80 -XSetWindowAttributes.override_redirect 88 -XSetWindowAttributes.colormap 96 -XSetWindowAttributes.cursor 104 -XSetWindowAttributes 112 -XRenderPictFormat.id 0 -XRenderPictFormat.type 8 -XRenderPictFormat.depth 12 -XRenderPictFormat.direct 16 -XRenderPictFormat.colormap 32 -XRenderPictFormat 40 -XReparentEvent.type 0 -XReparentEvent.serial 8 -XReparentEvent.send_event 16 -XReparentEvent.display 24 -XReparentEvent.event 32 -XReparentEvent.window 40 -XReparentEvent.parent 48 -XReparentEvent.x 56 -XReparentEvent.y 60 -XReparentEvent.override_redirect 64 -XReparentEvent 72 -XCirculateRequestEvent.type 0 -XCirculateRequestEvent.serial 8 -XCirculateRequestEvent.send_event 16 -XCirculateRequestEvent.display 24 -XCirculateRequestEvent.parent 32 -XCirculateRequestEvent.window 40 -XCirculateRequestEvent.place 48 -XCirculateRequestEvent 56 -XImage.width 0 -XImage.height 4 -XImage.xoffset 8 -XImage.format 12 -XImage.data 16 -XImage.byte_order 24 -XImage.bitmap_unit 28 -XImage.bitmap_bit_order 32 -XImage.bitmap_pad 36 -XImage.depth 40 -XImage.bytes_per_line 44 -XImage.bits_per_pixel 48 -XImage.red_mask 56 -XImage.green_mask 64 -XImage.blue_mask 72 -XImage.obdata 80 -XImage.f.create_image 88 -XImage.f.destroy_image 96 -XImage.f.get_pixel 104 -XImage.f.put_pixel 112 -XImage.f.sub_image 120 -XImage.f.add_pixel 128 -XImage 136 -XKeyEvent.type 0 -XKeyEvent.serial 8 -XKeyEvent.send_event 16 -XKeyEvent.display 24 -XKeyEvent.window 32 -XKeyEvent.root 40 -XKeyEvent.subwindow 48 -XKeyEvent.time 56 -XKeyEvent.x 64 -XKeyEvent.y 68 -XKeyEvent.x_root 72 -XKeyEvent.y_root 76 -XKeyEvent.state 80 -XKeyEvent.keycode 84 -XKeyEvent.same_screen 88 -XKeyEvent 96 -XkbActionMessageEvent.type 0 -XkbActionMessageEvent.serial 8 -XkbActionMessageEvent.send_event 16 -XkbActionMessageEvent.display 24 -XkbActionMessageEvent.time 32 -XkbActionMessageEvent.xkb_type 40 -XkbActionMessageEvent.device 44 -XkbActionMessageEvent.keycode 48 -XkbActionMessageEvent.press 52 -XkbActionMessageEvent.key_event_follows 56 -XkbActionMessageEvent.group 60 -XkbActionMessageEvent.mods 64 -XkbActionMessageEvent.message 68 -XkbActionMessageEvent 80 -XdbeSwapInfo.swap_window 0 -XdbeSwapInfo.swap_action 8 -XdbeSwapInfo 16 -XTextItem.chars 0 -XTextItem.nchars 8 -XTextItem.delta 12 -XTextItem.font 16 -XTextItem 24 -XModifierKeymap.max_keypermod 0 -XModifierKeymap.modifiermap 8 -XModifierKeymap 16 -XCharStruct.lbearing 0 -XCharStruct.rbearing 2 -XCharStruct.width 4 -XCharStruct.ascent 6 -XCharStruct.descent 8 -XCharStruct.attributes 10 -XCharStruct 12 -XGravityEvent.type 0 -XGravityEvent.serial 8 -XGravityEvent.send_event 16 -XGravityEvent.display 24 -XGravityEvent.event 32 -XGravityEvent.window 40 -XGravityEvent.x 48 -XGravityEvent.y 52 -XGravityEvent 56 -Visual.ext_data 0 -Visual.visualid 8 -Visual.class 16 -Visual.red_mask 24 -Visual.green_mask 32 -Visual.blue_mask 40 -Visual.bits_per_rgb 48 -Visual.map_entries 52 -Visual 56 -XOMOrientation.num_orientation 0 -XOMOrientation.orientation 8 -XOMOrientation 16 -XkbAccessXNotifyEvent.type 0 -XkbAccessXNotifyEvent.serial 8 -XkbAccessXNotifyEvent.send_event 16 -XkbAccessXNotifyEvent.display 24 -XkbAccessXNotifyEvent.time 32 -XkbAccessXNotifyEvent.xkb_type 40 -XkbAccessXNotifyEvent.device 44 -XkbAccessXNotifyEvent.detail 48 -XkbAccessXNotifyEvent.keycode 52 -XkbAccessXNotifyEvent.sk_delay 56 -XkbAccessXNotifyEvent.debounce_delay 60 -XkbAccessXNotifyEvent 64 -XWindowAttributes.x 0 -XWindowAttributes.y 4 -XWindowAttributes.width 8 -XWindowAttributes.height 12 -XWindowAttributes.border_width 16 -XWindowAttributes.depth 20 -XWindowAttributes.visual 24 -XWindowAttributes.root 32 -XWindowAttributes.class 40 -XWindowAttributes.bit_gravity 44 -XWindowAttributes.win_gravity 48 -XWindowAttributes.backing_store 52 -XWindowAttributes.backing_planes 56 -XWindowAttributes.backing_pixel 64 -XWindowAttributes.save_under 72 -XWindowAttributes.colormap 80 -XWindowAttributes.map_installed 88 -XWindowAttributes.map_state 92 -XWindowAttributes.all_event_masks 96 -XWindowAttributes.your_event_mask 104 -XWindowAttributes.do_not_propagate_mask 112 -XWindowAttributes.override_redirect 120 -XWindowAttributes.screen 128 -XWindowAttributes 136 -XmbTextItem.chars 0 -XmbTextItem.nchars 8 -XmbTextItem.delta 12 -XmbTextItem.font_set 16 -XmbTextItem 24 -XMappingEvent.type 0 -XMappingEvent.serial 8 -XMappingEvent.send_event 16 -XMappingEvent.display 24 -XMappingEvent.window 32 -XMappingEvent.request 40 -XMappingEvent.first_keycode 44 -XMappingEvent.count 48 -XMappingEvent 56 -XSizeHints.flags 0 -XSizeHints.x 8 -XSizeHints.y 12 -XSizeHints.width 16 -XSizeHints.height 20 -XSizeHints.min_width 24 -XSizeHints.min_height 28 -XSizeHints.max_width 32 -XSizeHints.max_height 36 -XSizeHints.width_inc 40 -XSizeHints.height_inc 44 -XSizeHints.min_aspect.x 48 -XSizeHints.min_aspect.y 52 -XSizeHints.max_aspect.x 56 -XSizeHints.max_aspect.y 60 -XSizeHints.base_width 64 -XSizeHints.base_height 68 -XSizeHints.win_gravity 72 -XSizeHints 80 -XUnmapEvent.type 0 -XUnmapEvent.serial 8 -XUnmapEvent.send_event 16 -XUnmapEvent.display 24 -XUnmapEvent.event 32 -XUnmapEvent.window 40 -XUnmapEvent.from_configure 48 -XUnmapEvent 56 -awtImageData.Depth 0 -awtImageData.wsImageFormat 4 -awtImageData.clrdata 16 -awtImageData.convert 48 -awtImageData 560 -XkbStateNotifyEvent.type 0 -XkbStateNotifyEvent.serial 8 -XkbStateNotifyEvent.send_event 16 -XkbStateNotifyEvent.display 24 -XkbStateNotifyEvent.time 32 -XkbStateNotifyEvent.xkb_type 40 -XkbStateNotifyEvent.device 44 -XkbStateNotifyEvent.changed 48 -XkbStateNotifyEvent.group 52 -XkbStateNotifyEvent.base_group 56 -XkbStateNotifyEvent.latched_group 60 -XkbStateNotifyEvent.locked_group 64 -XkbStateNotifyEvent.mods 68 -XkbStateNotifyEvent.base_mods 72 -XkbStateNotifyEvent.latched_mods 76 -XkbStateNotifyEvent.locked_mods 80 -XkbStateNotifyEvent.compat_state 84 -XkbStateNotifyEvent.grab_mods 88 -XkbStateNotifyEvent.compat_grab_mods 89 -XkbStateNotifyEvent.lookup_mods 90 -XkbStateNotifyEvent.compat_lookup_mods 91 -XkbStateNotifyEvent.ptr_buttons 92 -XkbStateNotifyEvent.keycode 96 -XkbStateNotifyEvent.event_type 97 -XkbStateNotifyEvent.req_major 98 -XkbStateNotifyEvent.req_minor 99 -XkbStateNotifyEvent 104 -XExposeEvent.type 0 -XExposeEvent.serial 8 -XExposeEvent.send_event 16 -XExposeEvent.display 24 -XExposeEvent.window 32 -XExposeEvent.x 40 -XExposeEvent.y 44 -XExposeEvent.width 48 -XExposeEvent.height 52 -XExposeEvent.count 56 -XExposeEvent 64 -XkbMapNotifyEvent.type 0 -XkbMapNotifyEvent.serial 8 -XkbMapNotifyEvent.send_event 16 -XkbMapNotifyEvent.display 24 -XkbMapNotifyEvent.time 32 -XkbMapNotifyEvent.xkb_type 40 -XkbMapNotifyEvent.device 44 -XkbMapNotifyEvent.changed 48 -XkbMapNotifyEvent.flags 52 -XkbMapNotifyEvent.first_type 56 -XkbMapNotifyEvent.num_types 60 -XkbMapNotifyEvent.min_key_code 64 -XkbMapNotifyEvent.max_key_code 65 -XkbMapNotifyEvent.first_key_sym 66 -XkbMapNotifyEvent.first_key_act 67 -XkbMapNotifyEvent.first_key_behavior 68 -XkbMapNotifyEvent.first_key_explicit 69 -XkbMapNotifyEvent.first_modmap_key 70 -XkbMapNotifyEvent.first_vmodmap_key 71 -XkbMapNotifyEvent.num_key_syms 72 -XkbMapNotifyEvent.num_key_acts 76 -XkbMapNotifyEvent.num_key_behaviors 80 -XkbMapNotifyEvent.num_key_explicit 84 -XkbMapNotifyEvent.num_modmap_keys 88 -XkbMapNotifyEvent.num_vmodmap_keys 92 -XkbMapNotifyEvent.vmods 96 -XkbMapNotifyEvent 104 -XGCValues.function 0 -XGCValues.plane_mask 8 -XGCValues.foreground 16 -XGCValues.background 24 -XGCValues.line_width 32 -XGCValues.line_style 36 -XGCValues.cap_style 40 -XGCValues.join_style 44 -XGCValues.fill_style 48 -XGCValues.fill_rule 52 -XGCValues.arc_mode 56 -XGCValues.tile 64 -XGCValues.stipple 72 -XGCValues.ts_x_origin 80 -XGCValues.ts_y_origin 84 -XGCValues.font 88 -XGCValues.subwindow_mode 96 -XGCValues.graphics_exposures 100 -XGCValues.clip_x_origin 104 -XGCValues.clip_y_origin 108 -XGCValues.clip_mask 112 -XGCValues.dash_offset 120 -XGCValues.dashes 124 -XGCValues 128 -XFocusChangeEvent.type 0 -XFocusChangeEvent.serial 8 -XFocusChangeEvent.send_event 16 -XFocusChangeEvent.display 24 -XFocusChangeEvent.window 32 -XFocusChangeEvent.mode 40 -XFocusChangeEvent.detail 44 -XFocusChangeEvent 48 -XPixmapFormatValues.depth 0 -XPixmapFormatValues.bits_per_pixel 4 -XPixmapFormatValues.scanline_pad 8 -XPixmapFormatValues 12 -XMapEvent.type 0 -XMapEvent.serial 8 -XMapEvent.send_event 16 -XMapEvent.display 24 -XMapEvent.event 32 -XMapEvent.window 40 -XMapEvent.override_redirect 48 -XMapEvent 56 -XkbBellNotifyEvent.type 0 -XkbBellNotifyEvent.serial 8 -XkbBellNotifyEvent.send_event 16 -XkbBellNotifyEvent.display 24 -XkbBellNotifyEvent.time 32 -XkbBellNotifyEvent.xkb_type 40 -XkbBellNotifyEvent.device 44 -XkbBellNotifyEvent.percent 48 -XkbBellNotifyEvent.pitch 52 -XkbBellNotifyEvent.duration 56 -XkbBellNotifyEvent.bell_class 60 -XkbBellNotifyEvent.bell_id 64 -XkbBellNotifyEvent.name 72 -XkbBellNotifyEvent.window 80 -XkbBellNotifyEvent.event_only 88 -XkbBellNotifyEvent 96 -XIMStringConversionText.length 0 -XIMStringConversionText.feedback 8 -XIMStringConversionText.encoding_is_wchar 16 -XIMStringConversionText.string 24 -XIMStringConversionText 32 -XKeyboardState.key_click_percent 0 -XKeyboardState.bell_percent 4 -XKeyboardState.bell_pitch 8 -XKeyboardState.bell_duration 12 -XKeyboardState.led_mask 16 -XKeyboardState.global_auto_repeat 24 -XKeyboardState.auto_repeats 28 -XKeyboardState 64 -XkbEvent.type 0 -XkbEvent.any 0 -XkbEvent.new_kbd 0 -XkbEvent.map 0 -XkbEvent.state 0 -XkbEvent.ctrls 0 -XkbEvent.indicators 0 -XkbEvent.names 0 -XkbEvent.compat 0 -XkbEvent.bell 0 -XkbEvent.message 0 -XkbEvent.accessx 0 -XkbEvent.device 0 -XkbEvent.core 0 -XkbEvent 192 -XPoint.x 0 -XPoint.y 2 -XPoint 4 -XSegment.x1 0 -XSegment.y1 2 -XSegment.x2 4 -XSegment.y2 6 -XSegment 8 -XIconSize.min_width 0 -XIconSize.min_height 4 -XIconSize.max_width 8 -XIconSize.max_height 12 -XIconSize.width_inc 16 -XIconSize.height_inc 20 -XIconSize 24 -XIMCallback.client_data 0 -XIMCallback.callback 8 -XIMCallback 16 -XConfigureEvent.type 0 -XConfigureEvent.serial 8 -XConfigureEvent.send_event 16 -XConfigureEvent.display 24 -XConfigureEvent.event 32 -XConfigureEvent.window 40 -XConfigureEvent.x 48 -XConfigureEvent.y 52 -XConfigureEvent.width 56 -XConfigureEvent.height 60 -XConfigureEvent.border_width 64 -XConfigureEvent.above 72 -XConfigureEvent.override_redirect 80 -XConfigureEvent 88 -XRectangle.x 0 -XRectangle.y 2 -XRectangle.width 4 -XRectangle.height 6 -XRectangle 8 -XkbNamesNotifyEvent.type 0 -XkbNamesNotifyEvent.serial 8 -XkbNamesNotifyEvent.send_event 16 -XkbNamesNotifyEvent.display 24 -XkbNamesNotifyEvent.time 32 -XkbNamesNotifyEvent.xkb_type 40 -XkbNamesNotifyEvent.device 44 -XkbNamesNotifyEvent.changed 48 -XkbNamesNotifyEvent.first_type 52 -XkbNamesNotifyEvent.num_types 56 -XkbNamesNotifyEvent.first_lvl 60 -XkbNamesNotifyEvent.num_lvls 64 -XkbNamesNotifyEvent.num_aliases 68 -XkbNamesNotifyEvent.num_radio_groups 72 -XkbNamesNotifyEvent.changed_vmods 76 -XkbNamesNotifyEvent.changed_groups 80 -XkbNamesNotifyEvent.changed_indicators 84 -XkbNamesNotifyEvent.first_key 88 -XkbNamesNotifyEvent.num_keys 92 -XkbNamesNotifyEvent 96 -XCreateWindowEvent.type 0 -XCreateWindowEvent.serial 8 -XCreateWindowEvent.send_event 16 -XCreateWindowEvent.display 24 -XCreateWindowEvent.parent 32 -XCreateWindowEvent.window 40 -XCreateWindowEvent.x 48 -XCreateWindowEvent.y 52 -XCreateWindowEvent.width 56 -XCreateWindowEvent.height 60 -XCreateWindowEvent.border_width 64 -XCreateWindowEvent.override_redirect 68 -XCreateWindowEvent 72 -XVisibilityEvent.type 0 -XVisibilityEvent.serial 8 -XVisibilityEvent.send_event 16 -XVisibilityEvent.display 24 -XVisibilityEvent.window 32 -XVisibilityEvent.state 40 -XVisibilityEvent 48 -XWMHints.flags 0 -XWMHints.initial_state 12 -XWMHints.icon_pixmap 16 -XWMHints.icon_window 24 -XWMHints.icon_x 32 -XWMHints.icon_y 36 -XWMHints.icon_mask 40 -XWMHints.input 8 -XWMHints.window_group 48 -XWMHints 56 -XCrossingEvent.type 0 -XCrossingEvent.serial 8 -XCrossingEvent.send_event 16 -XCrossingEvent.display 24 -XCrossingEvent.window 32 -XCrossingEvent.root 40 -XCrossingEvent.subwindow 48 -XCrossingEvent.time 56 -XCrossingEvent.x 64 -XCrossingEvent.y 68 -XCrossingEvent.x_root 72 -XCrossingEvent.y_root 76 -XCrossingEvent.mode 80 -XCrossingEvent.detail 84 -XCrossingEvent.same_screen 88 -XCrossingEvent.focus 92 -XCrossingEvent.state 96 -XCrossingEvent 104 -XSelectionRequestEvent.type 0 -XSelectionRequestEvent.serial 8 -XSelectionRequestEvent.send_event 16 -XSelectionRequestEvent.display 24 -XSelectionRequestEvent.owner 32 -XSelectionRequestEvent.requestor 40 -XSelectionRequestEvent.selection 48 -XSelectionRequestEvent.target 56 -XSelectionRequestEvent.property 64 -XSelectionRequestEvent.time 72 -XSelectionRequestEvent 80 -XNoExposeEvent.type 0 -XNoExposeEvent.serial 8 -XNoExposeEvent.send_event 16 -XNoExposeEvent.display 24 -XNoExposeEvent.drawable 32 -XNoExposeEvent.major_code 40 -XNoExposeEvent.minor_code 44 -XNoExposeEvent 48 -XHostAddress.family 0 -XHostAddress.length 4 -XHostAddress.address 8 -XHostAddress 16 -XColormapEvent.type 0 -XColormapEvent.serial 8 -XColormapEvent.send_event 16 -XColormapEvent.display 24 -XColormapEvent.window 32 -XColormapEvent.colormap 40 -XColormapEvent.new 48 -XColormapEvent.state 52 -XColormapEvent 56 -ColorEntry.r 0 -ColorEntry.g 1 -ColorEntry.b 2 -ColorEntry.flags 3 -ColorEntry 4 -XResizeRequestEvent.type 0 -XResizeRequestEvent.serial 8 -XResizeRequestEvent.send_event 16 -XResizeRequestEvent.display 24 -XResizeRequestEvent.window 32 -XResizeRequestEvent.width 40 -XResizeRequestEvent.height 44 -XResizeRequestEvent 48 -Depth.depth 0 -Depth.nvisuals 4 -Depth.visuals 8 -Depth 16 -XPropertyEvent.type 0 -XPropertyEvent.serial 8 -XPropertyEvent.send_event 16 -XPropertyEvent.display 24 -XPropertyEvent.window 32 -XPropertyEvent.atom 40 -XPropertyEvent.time 48 -XPropertyEvent.state 56 -XPropertyEvent 64 -XDestroyWindowEvent.type 0 -XDestroyWindowEvent.serial 8 -XDestroyWindowEvent.send_event 16 -XDestroyWindowEvent.display 24 -XDestroyWindowEvent.event 32 -XDestroyWindowEvent.window 40 -XDestroyWindowEvent 48 -XStandardColormap.colormap 0 -XStandardColormap.red_max 8 -XStandardColormap.red_mult 16 -XStandardColormap.green_max 24 -XStandardColormap.green_mult 32 -XStandardColormap.blue_max 40 -XStandardColormap.blue_mult 48 -XStandardColormap.base_pixel 56 -XStandardColormap.visualid 64 -XStandardColormap.killid 72 -XStandardColormap 80 -XComposeStatus.compose_ptr 0 -XComposeStatus.chars_matched 8 -XComposeStatus 16 -AwtGraphicsConfigData.awt_depth 0 -AwtGraphicsConfigData.awt_cmap 8 -AwtGraphicsConfigData.awt_visInfo 16 -AwtGraphicsConfigData.awt_num_colors 80 -AwtGraphicsConfigData.awtImage 88 -AwtGraphicsConfigData.AwtColorMatch 96 -AwtGraphicsConfigData.monoImage 104 -AwtGraphicsConfigData.monoPixmap 112 -AwtGraphicsConfigData.monoPixmapWidth 120 -AwtGraphicsConfigData.monoPixmapHeight 124 -AwtGraphicsConfigData.monoPixmapGC 128 -AwtGraphicsConfigData.pixelStride 136 -AwtGraphicsConfigData.color_data 144 -AwtGraphicsConfigData.glxInfo 152 -AwtGraphicsConfigData.isTranslucencySupported 160 -AwtGraphicsConfigData.renderPictFormat 168 -AwtGraphicsConfigData 208 -XColor.pixel 0 -XColor.red 8 -XColor.green 10 -XColor.blue 12 -XColor.flags 14 -XColor.pad 15 -XColor 16 -XTextProperty.value 0 -XTextProperty.encoding 8 -XTextProperty.format 16 -XTextProperty.nitems 24 -XTextProperty 32
--- a/make/data/x11wrappergen/xlibtypes.txt Thu Mar 08 14:31:54 2018 +0530 +++ b/make/data/x11wrappergen/xlibtypes.txt Thu Mar 08 10:18:28 2018 -0800 @@ -1,9 +1,9 @@ -// // // This file is used for automated generation of java classes to wrap native structures. -// The detail on format of this file see WrapperGenerator.java +// For details on format of this file, see WrapperGenerator.java // -// WARNING: if you modified this file, you need to regenerate sizes.64-solaris-i386 +// WARNING: If you modify this file, you need to regenerate sizes-32.txt and sizes-64.txt. +// Run "make update-x11wrappers" to do this. // XExtData
--- a/make/gensrc/Gensrc-java.desktop.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/gensrc/Gensrc-java.desktop.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -30,10 +30,10 @@ ifneq ($(OPENJDK_TARGET_OS), windows) include GensrcIcons.gmk +endif - ifneq ($(OPENJDK_TARGET_OS), macosx) - include GensrcX11Wrappers.gmk - endif +ifneq ($(filter $(OPENJDK_TARGET_OS), linux solaris aix), ) + include GensrcX11Wrappers.gmk endif include GensrcSwing.gmk
--- a/make/gensrc/GensrcX11Wrappers.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/gensrc/GensrcX11Wrappers.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ # -# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2018, 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,106 +23,32 @@ # questions. # -# This file is responsible for extracting the x11 native struct offsets to -# the xawt Java library. The tool needs to be run on the os/arch that -# will host the final jvm, thus the tool cannot be used when cross compiling. +# Generate java sources using the X11 offsets that are precalculated in files +# make/data/x11wrappergen/sizes-<address size>.txt. -# To enable cross compiling, the two versions of the generated offset file, -# sizes.32 and sizes.64 are committed into the source code repository. -# These are the ones used. +GENSRC_X11WRAPPERS_OUTPUT_TOP := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop -# However when not cross compiling, the offset generator tool is built and -# run, to verify that it still generates the same sizes.32 and sizes.64. +GENSRC_X11WRAPPERS_MARKER := $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/_x11wrappers.marker -GENSRC_X11WRAPPERS := -# Put temporary c-code and executable to calculate offsets here. -# Also put verification offset file here as well. -GENSRC_X11WRAPPERS_TMP := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_x11wrappers # Put the generated Java classes used to interface X11 from awt here. -GENSRC_X11WRAPPERS_DST := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/sun/awt/X11 +GENSRC_X11WRAPPERS_OUTPUTDIR := $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/sun/awt/X11 # The pre-calculated offset file are stored here: -GENSRC_SIZER_DIR := $(TOPDIR)/make/data/x11wrappergen +GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen +GENSRC_X11WRAPPERS_DATA := $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(OPENJDK_TARGET_CPU_BITS).txt -# Normal case is to generate only according to target bits -GENSRC_X11_VERSION := $(OPENJDK_TARGET_CPU_BITS) -ifeq ($(OPENJDK_TARGET_CPU_BITS), 64) - ifneq ($(OPENJDK_TARGET_OS), linux) - # On all 64-bit systems except Linux, generate both 32 and 64 bit versions - GENSRC_X11_VERSION := 32 64 - endif -else - ifeq ($(OPENJDK_TARGET_OS), solaris) - # As a special case, solaris 32-bit also generates the 64-bit version - GENSRC_X11_VERSION := 32 64 - endif -endif +$(info ExecuteWithLog is $(call ExecuteWithLog $(GENSRC_X11WRAPPERS_OUTPUT_TOP)/foobar, CMDLINE)) -GENSRC_X11_SIZES_USED := $(addprefix $(GENSRC_X11WRAPPERS_TMP)/sizes., $(GENSRC_X11_VERSION)) - -# Copy only the sizes.* files that are actually needed. WrapperGenerator picks up any it finds from the -# file prefix it is given so those not needed need to be hidden. -$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.% - $(call MakeDir, $(@D)) - $(RM) '$@' - $(SORT) $< > $@ - -# Run the tool on the offset files copied from the source repository to generate several Java classes -# used in awt. -$(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated.x11: $(GENSRC_X11_SIZES_USED) $(BUILD_TOOLS_JDK) - $(call MakeDir, $(GENSRC_X11WRAPPERS_DST)) - $(TOOL_WRAPPERGENERATOR) $(GENSRC_X11WRAPPERS_DST) $(GENSRC_SIZER_DIR)/xlibtypes.txt "gen" $(GENSRC_X11WRAPPERS_TMP)/sizes +# Run the tool on the offset files to generate several Java classes used in awt. +$(GENSRC_X11WRAPPERS_MARKER): $(BUILD_TOOLS_JDK) $(GENSRC_X11WRAPPERS_DATA) \ + $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt + $(call MakeDir, $(GENSRC_X11WRAPPERS_OUTPUTDIR)) + $(call LogInfo, Generating X11 wrapper source files) + $(call ExecuteWithLog, $@, \ + $(TOOL_WRAPPERGENERATOR) gen_java $(GENSRC_X11WRAPPERS_OUTPUTDIR) \ + $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(GENSRC_X11WRAPPERS_DATA) \ + $(OPENJDK_TARGET_CPU_BITS)) $(TOUCH) $@ -GENSRC_X11WRAPPERS += $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated.x11 -ifneq ($(COMPILE_TYPE), cross) - # This is not a cross compile, regenerate the offset file, so that we - # can compare it with the version in the source code repository. - - # Generate the C code for the program that will output the offset file. - $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c: $(GENSRC_SIZER_DIR)/xlibtypes.txt $(BUILD_TOOLS_JDK) - $(call LogInfo, Generating X11 wrapper ($*-bit version)) - $(call MakeDir, $(@D)) - $(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $* - - # use -m32/-m64 only if the compiler supports it - ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG), true) - MEMORY_MODEL_FLAG="$(COMPILER_TARGET_BITS_FLAG)$*" - endif - - SIZER_CFLAGS := \ - -I$(TOPDIR)/src/hotspot/share/include \ - -I$(TOPDIR)/src/hotspot/os/$(HOTSPOT_TARGET_OS_TYPE)/include \ - -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base \ - -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \ - -I$(TOPDIR)/src/java.base/share/native/libjava \ - -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \ - -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \ - -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \ - -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \ - # - - # Compile the C code into an executable. - $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c - $(call MakeDir, $(@D)) - (cd $(@D) && $(CC) $(MEMORY_MODEL_FLAG) -o $@ $< \ - $(X_CFLAGS) \ - $(X_LIBS) \ - $(SIZER_CFLAGS) -lc) - - .PRECIOUS: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c - - # Run the executable create the offset file and check that it is identical - # to the offset file in the source code repository. - $(GENSRC_X11WRAPPERS_TMP)/sizes.%.verification: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe - $(call LogInfo, Verifying X11 wrapper sizes) - $(call MakeDir, $(@D)) - $(GENSRC_X11WRAPPERS_TMP)/sizer.$*.exe | $(SORT) > $@.tmp - $(DIFF) $(GENSRC_X11WRAPPERS_TMP)/sizes.$*.verification.tmp $(GENSRC_X11WRAPPERS_TMP)/sizes.$* - mv $@.tmp $@ - - GENSRC_X11WRAPPERS += $(GENSRC_X11WRAPPERS_TMP)/sizes.$(OPENJDK_TARGET_CPU_BITS).verification -endif - -GENSRC_JAVA_DESKTOP += $(GENSRC_X11WRAPPERS) +GENSRC_JAVA_DESKTOP += $(GENSRC_X11WRAPPERS_MARKER)
--- a/make/hotspot/lib/CompileDtracePostJvm.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/hotspot/lib/CompileDtracePostJvm.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -160,7 +160,9 @@ > $(DTRACE_SUPPORT_DIR)/$(@F).d)) $(call ExecuteWithLog, $@, $(DTRACE) $(DTRACE_FLAGS) -o $@ \ -s $(DTRACE_SUPPORT_DIR)/$(@F).d) - $(call ExecuteWithLog, $@.elfedit, $(ELFEDIT) $(call GetElfeditCommands) $@) + ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) + $(call ExecuteWithLog, $@.elfedit, $(ELFEDIT) $(call GetElfeditCommands) $@) + endif ############################################################################ # Build the stand-alone dtrace libraries
--- a/make/hotspot/lib/CompileGtest.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/hotspot/lib/CompileGtest.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -82,7 +82,6 @@ CFLAGS_macosx := -DGTEST_OS_MAC=1, \ CFLAGS_aix := -qpic=large, \ CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ - CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ DISABLED_WARNINGS_gcc := undef, \ DISABLED_WARNINGS_clang := undef switch format-nonliteral \ tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \ @@ -116,7 +115,6 @@ CFLAGS := $(JVM_CFLAGS) -I$(GTEST_FRAMEWORK_SRC) \ -I$(GTEST_FRAMEWORK_SRC)/include, \ CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ - CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ LDFLAGS := $(LDFLAGS_JDKEXE), \ LDFLAGS_unix := -L$(JVM_OUTPUTDIR)/gtest $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_solaris := -library=stlport4, \
--- a/make/hotspot/lib/CompileJvm.gmk Thu Mar 08 14:31:54 2018 +0530 +++ b/make/hotspot/lib/CompileJvm.gmk Thu Mar 08 10:18:28 2018 -0800 @@ -221,7 +221,6 @@ EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \ CFLAGS := $(JVM_CFLAGS), \ CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ - CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \ arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \ DISABLED_WARNINGS_clang := tautological-compare, \
--- a/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java Thu Mar 08 14:31:54 2018 +0530 +++ b/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, 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 @@ -1109,7 +1109,6 @@ } public void writeJavaWrapperClass(String outputDir) { -// (new File(outputDir, package_path)).mkdirs(); try { for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) { BaseType tp = (BaseType) e.nextElement(); @@ -1126,7 +1125,6 @@ } } - public void writeNativeSizer(String file) { int type; @@ -1136,7 +1134,6 @@ StructType stp; Enumeration eo; - try { FileOutputStream fs = new FileOutputStream(file); @@ -1158,7 +1155,6 @@ pw.println(" unsigned long status;\n"); pw.println("} PropMwmHints;\n"); - pw.println("\n\nint main(){"); j=0; for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) { @@ -1182,7 +1178,6 @@ pw.println("printf(\"Atom\t%d\\n\",(int)sizeof(Atom));"); pw.println("printf(\"Window\t%d\\n\",(int)sizeof(Window));"); - for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) { @@ -1234,7 +1229,8 @@ symbolTable.put("Atom", new AtomicType(AtomicType.TYPE_ATOM, "", "Atom")); symbolTable.put("ulong", new AtomicType(AtomicType.TYPE_ULONG, "", "ulong")); } - public WrapperGenerator(String outputDir, String xlibFilename) { + + public WrapperGenerator(String xlibFilename) { initTypes(); try { BufferedReader in = new BufferedReader(new FileReader(xlibFilename)); @@ -1303,33 +1299,19 @@ catch (Exception e) { e.printStackTrace(); } + } - } - private void makeSizer(String outputDir) { - if (wide) { - sizerFileName = "sizer.64.c"; - } else { - sizerFileName = "sizer.32.c"; - } - File fp = new File(outputDir, sizerFileName); + private void makeSizer(String sizerFileName) { + File fp = new File(sizerFileName); writeNativeSizer(fp.getAbsolutePath()); } - private boolean readSizeInfo(String sizeInfo) { + + private boolean readFileSizeInfo(String filename, boolean wide) { try { - File f = new File(sizeInfo+".32"); boolean res = true; - FileInputStream fis = null; - if (f.exists()) { - fis = new FileInputStream(f); - res = readSizeInfo(fis, false); - fis.close(); - } - f = new File(sizeInfo+".64"); - if (f.exists()) { - fis = new FileInputStream(f); - res &= readSizeInfo(fis, true); - fis.close(); - } + FileInputStream fis = new FileInputStream(filename); + res = readSizeInfo(fis, wide); + fis.close(); return res; } catch (Exception e) { e.printStackTrace(); @@ -1337,8 +1319,8 @@ } } - private void startGeneration(String outputDir, String sizeInfo) { - if (readSizeInfo(sizeInfo)) + private void startGeneration(String outputDir, String filename, boolean wide) { + if (readFileSizeInfo(filename, wide)) { writeJavaWrapperClass(outputDir); } @@ -1348,21 +1330,22 @@ } public static void main(String[] args) { + if (args.length < 4) { + System.out.println("Usage:\nWrapperGenerator gen_java <output_dir> <xlibtypes.txt> <sizes-*.txt> <platform>"); + System.out.println(" or"); + System.out.println("WrapperGenerator gen_c_source <output_file> <xlibtypes.txt> <platform>"); + System.out.println("Where <platform>: 32, 64"); - if (args.length < 4) { - System.out.println("Usage:\nWrapperGenerator <output_dir> <xlibtypes.txt> <action> [<platform> | <sizes info file>]"); - System.out.println("Where <action>: gen, sizer"); - System.out.println(" <platform>: 32, 64"); System.exit(1); } - WrapperGenerator xparser = new WrapperGenerator(args[0], args[1]); - if (args[2].equals("sizer")) { + WrapperGenerator xparser = new WrapperGenerator(args[2]); + if (args[0].equals("gen_c_source")) { xparser.wide = args[3].equals("64"); - xparser.makeSizer(args[0]); - } else if (args[2].equals("gen")) { - xparser.startGeneration(args[0], args[3]); + xparser.makeSizer(args[1]); + } else if (args[0].equals("gen_java")) { + boolean wide = args[4].equals("64"); + xparser.startGeneration(args[1], args[3], wide); } } - }
--- a/src/java.base/share/classes/javax/security/auth/AuthPermission.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/share/classes/javax/security/auth/AuthPermission.java Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2018, 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 @@ -32,7 +32,7 @@ * * <p> The target name is the name of a security configuration parameter * (see below). Currently the {@code AuthPermission} object is used to - * guard access to the {@link Policy}, {@link Subject}, + * guard access to the {@link Subject}, * {@link javax.security.auth.login.LoginContext}, and * {@link javax.security.auth.login.Configuration} objects. * @@ -121,21 +121,6 @@ * {@code LoginContext}. * </pre> * - * <p> {@code javax.security.auth.Policy} has been - * deprecated in favor of {@code java.security.Policy}. - * Therefore, the following target names have also been deprecated: - * - * <pre> - * getPolicy - allow the caller to retrieve the system-wide - * Subject-based access control policy. - * - * setPolicy - allow the caller to set the system-wide - * Subject-based access control policy. - * - * refreshPolicy - allow the caller to refresh the system-wide - * Subject-based access control policy. - * </pre> - * * @implNote * Implementations may define additional target names, but should use naming * conventions such as reverse domain name notation to avoid name clashes.
--- a/src/java.base/share/classes/javax/security/auth/Policy.java Thu Mar 08 14:31:54 2018 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,356 +0,0 @@ -/* - * Copyright (c) 1998, 2017, 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. - */ - -package javax.security.auth; - -import java.security.Security; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedExceptionAction; -import java.util.Objects; -import sun.security.util.Debug; - -/** - * <p> This is an abstract class for representing the system policy for - * Subject-based authorization. A subclass implementation - * of this class provides a means to specify a Subject-based - * access control {@code Policy}. - * - * <p> A {@code Policy} object can be queried for the set of - * Permissions granted to code running as a - * {@code Principal} in the following manner: - * - * <pre> - * policy = Policy.getPolicy(); - * PermissionCollection perms = policy.getPermissions(subject, - * codeSource); - * </pre> - * - * The {@code Policy} object consults the local policy and returns - * and appropriate {@code Permissions} object with the - * Permissions granted to the Principals associated with the - * provided {@code subject}, and granted to the code specified - * by the provided {@code codeSource}. - * - * <p> A {@code Policy} contains the following information. - * Note that this example only represents the syntax for the default - * {@code Policy} implementation. Subclass implementations of this class - * may implement alternative syntaxes and may retrieve the - * {@code Policy} from any source such as files, databases, - * or servers. - * - * <p> Each entry in the {@code Policy} is represented as - * a <b><i>grant</i></b> entry. Each <b><i>grant</i></b> entry - * specifies a codebase, code signers, and Principals triplet, - * as well as the Permissions granted to that triplet. - * - * <pre> - * grant CodeBase ["URL"], Signedby ["signers"], - * Principal [Principal_Class] "Principal_Name" { - * Permission Permission_Class ["Target_Name"] - * [, "Permission_Actions"] - * [, signedBy "SignerName"]; - * }; - * </pre> - * - * The CodeBase and Signedby components of the triplet name/value pairs - * are optional. If they are not present, then any codebase will match, - * and any signer (including unsigned code) will match. - * For Example, - * - * <pre> - * grant CodeBase "foo.com", Signedby "foo", - * Principal com.sun.security.auth.UnixPrincipal "duke" { - * permission java.io.FilePermission "/home/duke", "read, write"; - * }; - * </pre> - * - * This <b><i>grant</i></b> entry specifies that code from "foo.com", - * signed by "foo', and running as a {@code UnixPrincipal} with the - * name, duke, has one {@code Permission}. This {@code Permission} - * permits the executing code to read and write files in the directory, - * "/home/duke". - * - * <p> To "run" as a particular {@code Principal}, - * code invokes the {@code Subject.doAs(subject, ...)} method. - * After invoking that method, the code runs as all the Principals - * associated with the specified {@code Subject}. - * Note that this {@code Policy} (and the Permissions - * granted in this {@code Policy}) only become effective - * after the call to {@code Subject.doAs} has occurred. - * - * <p> Multiple Principals may be listed within one <b><i>grant</i></b> entry. - * All the Principals in the grant entry must be associated with - * the {@code Subject} provided to {@code Subject.doAs} - * for that {@code Subject} to be granted the specified Permissions. - * - * <pre> - * grant Principal com.sun.security.auth.UnixPrincipal "duke", - * Principal com.sun.security.auth.UnixNumericUserPrincipal "0" { - * permission java.io.FilePermission "/home/duke", "read, write"; - * permission java.net.SocketPermission "duke.com", "connect"; - * }; - * </pre> - * - * This entry grants any code running as both "duke" and "0" - * permission to read and write files in duke's home directory, - * as well as permission to make socket connections to "duke.com". - * - * <p> Note that non Principal-based grant entries are not permitted - * in this {@code Policy}. Therefore, grant entries such as: - * - * <pre> - * grant CodeBase "foo.com", Signedby "foo" { - * permission java.io.FilePermission "/tmp/scratch", "read, write"; - * }; - * </pre> - * - * are rejected. Such permission must be listed in the - * {@code java.security.Policy}. - * - * <p> The default {@code Policy} implementation can be changed by - * setting the value of the {@code auth.policy.provider} security property to - * the fully qualified name of the desired {@code Policy} implementation class. - * - * @deprecated Replaced by java.security.Policy. - * java.security.Policy has a method: - * <pre> - * public PermissionCollection getPermissions - * (java.security.ProtectionDomain pd) - * - * </pre> - * and ProtectionDomain has a constructor: - * <pre> - * public ProtectionDomain - * (CodeSource cs, - * PermissionCollection permissions, - * ClassLoader loader, - * Principal[] principals) - * </pre> - * - * These two APIs provide callers the means to query the - * Policy for Principal-based Permission entries. - * This class is subject to removal in a future version of Java SE. - * - * @since 1.4 - * @see java.security.Security security properties - */ -@Deprecated(since="1.4", forRemoval=true) -public abstract class Policy { - - private static Policy policy; - private static final String AUTH_POLICY = - "sun.security.provider.AuthPolicyFile"; - - private final java.security.AccessControlContext acc = - java.security.AccessController.getContext(); - - // true if a custom (not AUTH_POLICY) system-wide policy object is set - private static boolean isCustomPolicy; - - /** - * Sole constructor. (For invocation by subclass constructors, typically - * implicit.) - */ - protected Policy() { } - - /** - * Returns the installed Policy object. - * This method first calls - * {@code SecurityManager.checkPermission} with the - * {@code AuthPermission("getPolicy")} permission - * to ensure the caller has permission to get the Policy object. - * - * @return the installed Policy. The return value cannot be - * {@code null}. - * - * @exception java.lang.SecurityException if the current thread does not - * have permission to get the Policy object. - * - * @see #setPolicy - */ - public static Policy getPolicy() { - java.lang.SecurityManager sm = System.getSecurityManager(); - if (sm != null) sm.checkPermission(new AuthPermission("getPolicy")); - return getPolicyNoCheck(); - } - - /** - * Returns the installed Policy object, skipping the security check. - * - * @return the installed Policy. - * - */ - static Policy getPolicyNoCheck() { - if (policy == null) { - - synchronized(Policy.class) { - - if (policy == null) { - String policy_class = null; - policy_class = AccessController.doPrivileged - (new PrivilegedAction<String>() { - public String run() { - return java.security.Security.getProperty - ("auth.policy.provider"); - } - }); - if (policy_class == null) { - policy_class = AUTH_POLICY; - } - - try { - final String finalClass = policy_class; - - Policy untrustedImpl = AccessController.doPrivileged( - new PrivilegedExceptionAction<Policy>() { - public Policy run() throws ClassNotFoundException, - InstantiationException, - IllegalAccessException { - Class<? extends Policy> implClass = Class.forName( - finalClass, false, - Thread.currentThread().getContextClassLoader() - ).asSubclass(Policy.class); - return implClass.newInstance(); - } - }); - AccessController.doPrivileged( - new PrivilegedExceptionAction<Void>() { - public Void run() { - setPolicy(untrustedImpl); - isCustomPolicy = !finalClass.equals(AUTH_POLICY); - return null; - } - }, Objects.requireNonNull(untrustedImpl.acc) - ); - } catch (Exception e) { - throw new SecurityException - (sun.security.util.ResourcesMgr.getString - ("unable.to.instantiate.Subject.based.policy")); - } - } - } - } - return policy; - } - - - /** - * Sets the system-wide Policy object. This method first calls - * {@code SecurityManager.checkPermission} with the - * {@code AuthPermission("setPolicy")} - * permission to ensure the caller has permission to set the Policy. - * - * @param policy the new system Policy object. - * - * @exception java.lang.SecurityException if the current thread does not - * have permission to set the Policy. - * - * @see #getPolicy - */ - public static void setPolicy(Policy policy) { - java.lang.SecurityManager sm = System.getSecurityManager(); - if (sm != null) sm.checkPermission(new AuthPermission("setPolicy")); - Policy.policy = policy; - // all non-null policy objects are assumed to be custom - isCustomPolicy = policy != null ? true : false; - } - - /** - * Returns true if a custom (not AUTH_POLICY) system-wide policy object - * has been set or installed. This method is called by - * SubjectDomainCombiner to provide backwards compatibility for - * developers that provide their own javax.security.auth.Policy - * implementations. - * - * @return true if a custom (not AUTH_POLICY) system-wide policy object - * has been set; false otherwise - */ - static boolean isCustomPolicySet(Debug debug) { - if (policy != null) { - if (debug != null && isCustomPolicy) { - debug.println("Providing backwards compatibility for " + - "javax.security.auth.policy implementation: " + - policy.toString()); - } - return isCustomPolicy; - } - // check if custom policy has been set using auth.policy.provider prop - String policyClass = java.security.AccessController.doPrivileged - (new java.security.PrivilegedAction<String>() { - public String run() { - return Security.getProperty("auth.policy.provider"); - } - }); - if (policyClass != null && !policyClass.equals(AUTH_POLICY)) { - if (debug != null) { - debug.println("Providing backwards compatibility for " + - "javax.security.auth.policy implementation: " + - policyClass); - } - return true; - } - return false; - } - - /** - * Retrieve the Permissions granted to the Principals associated with - * the specified {@code CodeSource}. - * - * @param subject the {@code Subject} - * whose associated Principals, - * in conjunction with the provided - * {@code CodeSource}, determines the Permissions - * returned by this method. This parameter - * may be {@code null}. - * - * @param cs the code specified by its {@code CodeSource} - * that determines, in conjunction with the provided - * {@code Subject}, the Permissions - * returned by this method. This parameter may be - * {@code null}. - * - * @return the Collection of Permissions granted to all the - * {@code Subject} and code specified in - * the provided <i>subject</i> and <i>cs</i> - * parameters. - */ - public abstract java.security.PermissionCollection getPermissions - (Subject subject, - java.security.CodeSource cs); - - /** - * Refresh and reload the Policy. - * - * <p>This method causes this object to refresh/reload its current - * Policy. This is implementation-dependent. - * For example, if the Policy object is stored in - * a file, calling {@code refresh} will cause the file to be re-read. - * - * @exception SecurityException if the caller does not have permission - * to refresh the Policy. - */ - public abstract void refresh(); -}
--- a/src/java.base/share/classes/javax/security/auth/SubjectDomainCombiner.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/share/classes/javax/security/auth/SubjectDomainCombiner.java Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2018, 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 @@ -26,13 +26,9 @@ package javax.security.auth; import java.security.AccessController; -import java.security.Permission; -import java.security.Permissions; -import java.security.PermissionCollection; import java.security.Principal; import java.security.PrivilegedAction; import java.security.ProtectionDomain; -import java.security.Security; import java.util.Set; import java.util.WeakHashMap; import java.lang.ref.WeakReference; @@ -56,15 +52,6 @@ sun.security.util.Debug.getInstance("combiner", "\t[SubjectDomainCombiner]"); - @SuppressWarnings({"deprecation", "removal"}) - // Note: check only at classloading time, not dynamically during combine() - private static final boolean useJavaxPolicy = - javax.security.auth.Policy.isCustomPolicySet(debug); - - // Relevant only when useJavaxPolicy is true - private static final boolean allowCaching = - (useJavaxPolicy && cachePolicy()); - /** * Associate the provided {@code Subject} with this * {@code SubjectDomainCombiner}. @@ -196,12 +183,6 @@ return null; } - // maintain backwards compatibility for developers who provide - // their own custom javax.security.auth.Policy implementations - if (useJavaxPolicy) { - return combineJavaxPolicy(currentDomains, assignedDomains); - } - int cLen = (currentDomains == null ? 0 : currentDomains.length); int aLen = (assignedDomains == null ? 0 : assignedDomains.length); @@ -292,151 +273,6 @@ } } - /** - * Use the javax.security.auth.Policy implementation - */ - private ProtectionDomain[] combineJavaxPolicy( - ProtectionDomain[] currentDomains, - ProtectionDomain[] assignedDomains) { - - if (!allowCaching) { - java.security.AccessController.doPrivileged - (new PrivilegedAction<Void>() { - @SuppressWarnings({"deprecation", "removal"}) - public Void run() { - // Call refresh only caching is disallowed - javax.security.auth.Policy.getPolicy().refresh(); - return null; - } - }); - } - - - int cLen = (currentDomains == null ? 0 : currentDomains.length); - int aLen = (assignedDomains == null ? 0 : assignedDomains.length); - - // the ProtectionDomains for the new AccessControlContext - // that we will return - ProtectionDomain[] newDomains = new ProtectionDomain[cLen + aLen]; - - synchronized(cachedPDs) { - if (!subject.isReadOnly() && - !subject.getPrincipals().equals(principalSet)) { - - // if the Subject was mutated, clear the PD cache - Set<Principal> newSet = subject.getPrincipals(); - synchronized(newSet) { - principalSet = new java.util.HashSet<Principal>(newSet); - } - principals = principalSet.toArray - (new Principal[principalSet.size()]); - cachedPDs.clear(); - - if (debug != null) { - debug.println("Subject mutated - clearing cache"); - } - } - - for (int i = 0; i < cLen; i++) { - ProtectionDomain pd = currentDomains[i]; - ProtectionDomain subjectPd = cachedPDs.getValue(pd); - - if (subjectPd == null) { - if (pd.staticPermissionsOnly()) { - // keep static ProtectionDomain objects static - subjectPd = pd; - } else { - // XXX - // we must first add the original permissions. - // that way when we later add the new JAAS permissions, - // any unresolved JAAS-related permissions will - // automatically get resolved. - - // get the original perms - Permissions perms = new Permissions(); - PermissionCollection coll = pd.getPermissions(); - java.util.Enumeration<Permission> e; - if (coll != null) { - synchronized (coll) { - e = coll.elements(); - while (e.hasMoreElements()) { - Permission newPerm = - e.nextElement(); - perms.add(newPerm); - } - } - } - - // get perms from the policy - final java.security.CodeSource finalCs = pd.getCodeSource(); - final Subject finalS = subject; - PermissionCollection newPerms = - java.security.AccessController.doPrivileged - (new PrivilegedAction<PermissionCollection>() { - @SuppressWarnings({"deprecation", "removal"}) - public PermissionCollection run() { - return - javax.security.auth.Policy.getPolicy().getPermissions - (finalS, finalCs); - } - }); - - // add the newly granted perms, - // avoiding duplicates - synchronized (newPerms) { - e = newPerms.elements(); - while (e.hasMoreElements()) { - Permission newPerm = e.nextElement(); - if (!perms.implies(newPerm)) { - perms.add(newPerm); - if (debug != null) - debug.println ( - "Adding perm " + newPerm + "\n"); - } - } - } - subjectPd = new ProtectionDomain - (finalCs, perms, pd.getClassLoader(), principals); - } - if (allowCaching) - cachedPDs.putValue(pd, subjectPd); - } - newDomains[i] = subjectPd; - } - } - - if (debug != null) { - debug.println("updated current: "); - for (int i = 0; i < cLen; i++) { - debug.println("\tupdated[" + i + "] = " + newDomains[i]); - } - } - - // now add on the assigned domains - if (aLen > 0) { - System.arraycopy(assignedDomains, 0, newDomains, cLen, aLen); - } - - if (debug != null) { - if (newDomains == null || newDomains.length == 0) { - debug.println("returning null"); - } else { - debug.println("combinedDomains: "); - for (int i = 0; i < newDomains.length; i++) { - debug.println("newDomain " + i + ": " + - newDomains[i].toString()); - } - } - } - - // return the new ProtectionDomains - if (newDomains == null || newDomains.length == 0) { - return null; - } else { - return newDomains; - } - } - private static ProtectionDomain[] optimize(ProtectionDomain[] domains) { if (domains == null || domains.length == 0) return null; @@ -476,21 +312,6 @@ return ((num == 0 || optimized.length == 0) ? null : optimized); } - private static boolean cachePolicy() { - String s = AccessController.doPrivileged - (new PrivilegedAction<String>() { - public String run() { - return Security.getProperty("cache.auth.policy"); - } - }); - if (s != null) { - return Boolean.parseBoolean(s); - } - - // cache by default - return true; - } - private static void printInputDomains(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains) { if (currentDomains == null || currentDomains.length == 0) {
--- a/src/java.base/share/classes/sun/net/www/MimeTable.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/share/classes/sun/net/www/MimeTable.java Thu Mar 08 10:18:28 2018 -0800 @@ -57,9 +57,6 @@ "/etc/mailcap", "/usr/etc/mailcap", "/usr/local/etc/mailcap", - System.getProperty("hotjava.home", - "/usr/local/hotjava") - + "/lib/mailcap", }; return null; }
--- a/src/java.base/share/classes/sun/nio/ch/SelChImpl.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/share/classes/sun/nio/ch/SelChImpl.java Thu Mar 08 10:18:28 2018 -0800 @@ -63,8 +63,6 @@ void translateAndSetInterestOps(int ops, SelectionKeyImpl sk); - int validOps(); - void kill() throws IOException; }
--- a/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java Thu Mar 08 10:18:28 2018 -0800 @@ -96,7 +96,7 @@ private static final int ST_CLOSING = 3; private static final int ST_KILLPENDING = 4; private static final int ST_KILLED = 5; - private int state; + private volatile int state; // need stateLock to change // IDs of native threads doing reads and writes, for signalling private long readerThread; @@ -148,12 +148,37 @@ } } - // @throws ClosedChannelException if channel is closed + /** + * Checks that the channel is open. + * + * @throws ClosedChannelException if channel is closed (or closing) + */ private void ensureOpen() throws ClosedChannelException { if (!isOpen()) throw new ClosedChannelException(); } + /** + * Checks that the channel is open and connected. + * + * @apiNote This method uses the "state" field to check if the channel is + * open. It should never be used in conjuncion with isOpen or ensureOpen + * as these methods check AbstractInterruptibleChannel's closed field - that + * field is set before implCloseSelectableChannel is called and so before + * the state is changed. + * + * @throws ClosedChannelException if channel is closed (or closing) + * @throws NotYetConnectedException if open and not connected + */ + private void ensureOpenAndConnected() throws ClosedChannelException { + int state = this.state; + if (state < ST_CONNECTED) { + throw new NotYetConnectedException(); + } else if (state > ST_CONNECTED) { + throw new ClosedChannelException(); + } + } + @Override public Socket socket() { synchronized (stateLock) { @@ -275,13 +300,14 @@ if (blocking) { // set hook for Thread.interrupt begin(); - } - synchronized (stateLock) { - ensureOpen(); - if (state != ST_CONNECTED) - throw new NotYetConnectedException(); - if (blocking) + + synchronized (stateLock) { + ensureOpenAndConnected(); + // record thread so it can be signalled if needed readerThread = NativeThread.current(); + } + } else { + ensureOpenAndConnected(); } } @@ -385,15 +411,16 @@ if (blocking) { // set hook for Thread.interrupt begin(); - } - synchronized (stateLock) { - ensureOpen(); - if (isOutputClosed) - throw new ClosedChannelException(); - if (state != ST_CONNECTED) - throw new NotYetConnectedException(); - if (blocking) + + synchronized (stateLock) { + ensureOpenAndConnected(); + if (isOutputClosed) + throw new ClosedChannelException(); + // record thread so it can be signalled if needed writerThread = NativeThread.current(); + } + } else { + ensureOpenAndConnected(); } } @@ -574,38 +601,48 @@ @Override public boolean isConnected() { - synchronized (stateLock) { - return (state == ST_CONNECTED); - } + return (state == ST_CONNECTED); } @Override public boolean isConnectionPending() { - synchronized (stateLock) { - return (state == ST_CONNECTIONPENDING); - } + return (state == ST_CONNECTIONPENDING); } /** * Marks the beginning of a connect operation that might block. - * + * @param blocking true if configured blocking + * @param isa the remote address * @throws ClosedChannelException if the channel is closed * @throws AlreadyConnectedException if already connected * @throws ConnectionPendingException is a connection is pending + * @throws IOException if the pre-connect hook fails */ - private void beginConnect(boolean blocking) throws ClosedChannelException { + private void beginConnect(boolean blocking, InetSocketAddress isa) + throws IOException + { if (blocking) { // set hook for Thread.interrupt begin(); } synchronized (stateLock) { ensureOpen(); + int state = this.state; if (state == ST_CONNECTED) throw new AlreadyConnectedException(); if (state == ST_CONNECTIONPENDING) throw new ConnectionPendingException(); - if (blocking) + assert state == ST_UNCONNECTED; + this.state = ST_CONNECTIONPENDING; + + if (localAddress == null) + NetHooks.beforeTcpConnect(fd, isa.getAddress(), isa.getPort()); + remoteAddress = isa; + + if (blocking) { + // record thread so it can be signalled if needed readerThread = NativeThread.current(); + } } } @@ -614,11 +651,21 @@ * * @throws AsynchronousCloseException if the channel was closed due to this * thread being interrupted on a blocking connect operation. + * @throws IOException if completed and unable to obtain the local address */ private void endConnect(boolean blocking, boolean completed) - throws AsynchronousCloseException + throws IOException { endRead(blocking, completed); + + if (completed) { + synchronized (stateLock) { + if (state == ST_CONNECTIONPENDING) { + localAddress = Net.localAddress(fd); + state = ST_CONNECTED; + } + } + } } @Override @@ -628,64 +675,37 @@ if (sm != null) sm.checkConnect(isa.getAddress().getHostAddress(), isa.getPort()); - readLock.lock(); + InetAddress ia = isa.getAddress(); + if (ia.isAnyLocalAddress()) + ia = InetAddress.getLocalHost(); + try { - writeLock.lock(); + readLock.lock(); try { - // notify before-connect hook - synchronized (stateLock) { - if (state == ST_UNCONNECTED && localAddress == null) { - NetHooks.beforeTcpConnect(fd, isa.getAddress(), isa.getPort()); + writeLock.lock(); + try { + int n = 0; + boolean blocking = isBlocking(); + try { + beginConnect(blocking, isa); + do { + n = Net.connect(fd, ia, isa.getPort()); + } while (n == IOStatus.INTERRUPTED && isOpen()); + } finally { + endConnect(blocking, (n > 0)); } - } - - InetAddress ia = isa.getAddress(); - if (ia.isAnyLocalAddress()) - ia = InetAddress.getLocalHost(); - - int n = 0; - boolean blocking = isBlocking(); - try { - try { - beginConnect(blocking); - if (blocking) { - do { - n = Net.connect(fd, ia, isa.getPort()); - } while (n == IOStatus.INTERRUPTED && isOpen()); - } else { - n = Net.connect(fd, ia, isa.getPort()); - } - } finally { - endConnect(blocking, n > 0); - } - } catch (IOException x) { - // connect failed, close socket - close(); - throw x; - } - - // connection may be established - synchronized (stateLock) { - if (!isOpen()) - throw new AsynchronousCloseException(); - remoteAddress = isa; - if (n > 0) { - // connected established - localAddress = Net.localAddress(fd); - state = ST_CONNECTED; - return true; - } else { - // connection pending - assert !blocking; - state = ST_CONNECTIONPENDING; - return false; - } + assert IOStatus.check(n); + return n > 0; + } finally { + writeLock.unlock(); } } finally { - writeLock.unlock(); + readLock.unlock(); } - } finally { - readLock.unlock(); + } catch (IOException ioe) { + // connect failed, close the channel + close(); + throw ioe; } } @@ -704,8 +724,10 @@ ensureOpen(); if (state != ST_CONNECTIONPENDING) throw new NoConnectionPendingException(); - if (blocking) + if (blocking) { + // record thread so it can be signalled if needed readerThread = NativeThread.current(); + } } } @@ -714,65 +736,62 @@ * * @throws AsynchronousCloseException if the channel was closed due to this * thread being interrupted on a blocking connect operation. + * @throws IOException if completed and unable to obtain the local address */ private void endFinishConnect(boolean blocking, boolean completed) - throws AsynchronousCloseException + throws IOException { endRead(blocking, completed); + + if (completed) { + synchronized (stateLock) { + if (state == ST_CONNECTIONPENDING) { + localAddress = Net.localAddress(fd); + state = ST_CONNECTED; + } + } + } } @Override public boolean finishConnect() throws IOException { - readLock.lock(); try { - writeLock.lock(); + readLock.lock(); try { - // already connected? - synchronized (stateLock) { - if (state == ST_CONNECTED) + writeLock.lock(); + try { + // no-op if already connected + if (isConnected()) return true; - } - int n = 0; - boolean blocking = isBlocking(); - try { + boolean blocking = isBlocking(); + boolean connected = false; try { beginFinishConnect(blocking); + int n = 0; if (blocking) { do { n = checkConnect(fd, true); - } while (n == 0 || (n == IOStatus.INTERRUPTED) && isOpen()); + } while ((n == 0 || n == IOStatus.INTERRUPTED) && isOpen()); } else { n = checkConnect(fd, false); } + connected = (n > 0); } finally { - endFinishConnect(blocking, n > 0); + endFinishConnect(blocking, connected); } - } catch (IOException x) { - close(); - throw x; - } - - // post finishConnect, connection may be established - synchronized (stateLock) { - if (!isOpen()) - throw new AsynchronousCloseException(); - if (n > 0) { - // connection established - localAddress = Net.localAddress(fd); - state = ST_CONNECTED; - return true; - } else { - // connection still pending - assert !blocking; - return false; - } + assert (blocking && connected) ^ !blocking; + return connected; + } finally { + writeLock.unlock(); } } finally { - writeLock.unlock(); + readLock.unlock(); } - } finally { - readLock.unlock(); + } catch (IOException ioe) { + // connect failed, close the channel + close(); + throw ioe; } } @@ -994,20 +1013,17 @@ return (newOps & ~oldOps) != 0; } + boolean connected = isConnected(); if (((ops & Net.POLLIN) != 0) && - ((intOps & SelectionKey.OP_READ) != 0) && - (state == ST_CONNECTED)) + ((intOps & SelectionKey.OP_READ) != 0) && connected) newOps |= SelectionKey.OP_READ; if (((ops & Net.POLLCONN) != 0) && - ((intOps & SelectionKey.OP_CONNECT) != 0) && - ((state == ST_UNCONNECTED) || (state == ST_CONNECTIONPENDING))) { + ((intOps & SelectionKey.OP_CONNECT) != 0) && isConnectionPending()) newOps |= SelectionKey.OP_CONNECT; - } if (((ops & Net.POLLOUT) != 0) && - ((intOps & SelectionKey.OP_WRITE) != 0) && - (state == ST_CONNECTED)) + ((intOps & SelectionKey.OP_WRITE) != 0) && connected) newOps |= SelectionKey.OP_WRITE; sk.nioReadyOps(newOps);
--- a/src/java.base/share/classes/sun/security/provider/AuthPolicyFile.java Thu Mar 08 14:31:54 2018 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1197 +0,0 @@ -/* - * Copyright (c) 1999, 2013, 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. - */ - -package sun.security.provider; - -import java.io.*; -import java.lang.reflect.*; -import java.net.URL; -import java.util.*; - -import java.security.AccessController; -import java.security.CodeSource; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.Permission; -import java.security.Permissions; -import java.security.PermissionCollection; -import java.security.Principal; -import java.security.PrivilegedAction; -import java.security.UnresolvedPermission; -import java.security.Security; -import java.security.cert.Certificate; -import java.security.cert.X509Certificate; - -import javax.security.auth.Subject; -import javax.security.auth.PrivateCredentialPermission; - -import sun.security.provider.PolicyParser.GrantEntry; -import sun.security.provider.PolicyParser.PermissionEntry; -import sun.security.provider.PolicyParser.PrincipalEntry; -import sun.security.util.Debug; -import sun.security.util.PolicyUtil; -import sun.security.util.PropertyExpander; - -/** - * See {@code com.sun.security.auth.PolicyFile} for the class description. - * This class is necessary in order to support a default - * {@code javax.security.auth.Policy} implementation on the compact1 and - * compact2 profiles. - * - * @deprecated As of JDK 1.4, replaced by - * {@code sun.security.provider.PolicyFile}. - * This class is entirely deprecated. - */ -@Deprecated -@SuppressWarnings("removal") -public class AuthPolicyFile extends javax.security.auth.Policy { - - static final ResourceBundle rb = - AccessController.doPrivileged(new PrivilegedAction<ResourceBundle>() { - @Override public ResourceBundle run() { - return (ResourceBundle.getBundle - ("sun.security.util.AuthResources")); - } - }); - - private static final Debug debug = Debug.getInstance("policy", - "\t[Auth Policy]"); - - private static final String AUTH_POLICY = "java.security.auth.policy"; - private static final String SECURITY_MANAGER = "java.security.manager"; - private static final String AUTH_POLICY_URL = "auth.policy.url."; - - private Vector<PolicyEntry> policyEntries; - private Hashtable<Object, Object> aliasMapping; - - private boolean initialized = false; - - private boolean expandProperties = true; - private boolean ignoreIdentityScope = true; - - // for use with the reflection API - private static final Class<?>[] PARAMS = { String.class, String.class}; - - /** - * Initializes the Policy object and reads the default policy - * configuration file(s) into the Policy object. - */ - public AuthPolicyFile() { - // initialize Policy if either the AUTH_POLICY or - // SECURITY_MANAGER properties are set - String prop = System.getProperty(AUTH_POLICY); - - if (prop == null) { - prop = System.getProperty(SECURITY_MANAGER); - } - if (prop != null) { - init(); - } - } - - private synchronized void init() { - if (initialized) { - return; - } - - policyEntries = new Vector<PolicyEntry>(); - aliasMapping = new Hashtable<Object, Object>(11); - - initPolicyFile(); - initialized = true; - } - - @Override - public synchronized void refresh() { - - java.lang.SecurityManager sm = System.getSecurityManager(); - if (sm != null) { - sm.checkPermission(new javax.security.auth.AuthPermission - ("refreshPolicy")); - } - - // XXX - // - // 1) if code instantiates PolicyFile directly, then it will need - // all the permissions required for the PolicyFile initialization - // 2) if code calls Policy.getPolicy, then it simply needs - // AuthPermission(getPolicy), and the javax.security.auth.Policy - // implementation instantiates PolicyFile in a doPrivileged block - // 3) if after instantiating a Policy (either via #1 or #2), - // code calls refresh, it simply needs - // AuthPermission(refreshPolicy). then PolicyFile wraps - // the refresh in a doPrivileged block. - initialized = false; - AccessController.doPrivileged(new PrivilegedAction<Void>() { - @Override public Void run() { - init(); - return null; - } - }); - } - - private KeyStore initKeyStore(URL policyUrl, String keyStoreName, - String keyStoreType) { - if (keyStoreName != null) { - try { - /* - * location of keystore is specified as absolute URL in policy - * file, or is relative to URL of policy file - */ - URL keyStoreUrl = null; - try { - keyStoreUrl = new URL(keyStoreName); - // absolute URL - } catch (java.net.MalformedURLException e) { - // relative URL - keyStoreUrl = new URL(policyUrl, keyStoreName); - } - - if (debug != null) { - debug.println("reading keystore"+keyStoreUrl); - } - - InputStream inStream = new BufferedInputStream( - PolicyUtil.getInputStream(keyStoreUrl)); - - KeyStore ks; - if (keyStoreType != null) - ks = KeyStore.getInstance(keyStoreType); - else - ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ks.load(inStream, null); - inStream.close(); - return ks; - } catch (Exception e) { - // ignore, treat it like we have no keystore - if (debug != null) { - debug.println("Debug info only. No keystore."); - e.printStackTrace(); - } - return null; - } - } - return null; - } - - private void initPolicyFile() { - - String prop = Security.getProperty("policy.expandProperties"); - if (prop != null) { - expandProperties = prop.equalsIgnoreCase("true"); - } - - String iscp = Security.getProperty("policy.ignoreIdentityScope"); - if (iscp != null) { - ignoreIdentityScope = iscp.equalsIgnoreCase("true"); - } - - String allowSys = Security.getProperty("policy.allowSystemProperty"); - if (allowSys != null && allowSys.equalsIgnoreCase("true")) { - String extra_policy = System.getProperty(AUTH_POLICY); - if (extra_policy != null) { - boolean overrideAll = false; - if (extra_policy.startsWith("=")) { - overrideAll = true; - extra_policy = extra_policy.substring(1); - } - try { - extra_policy = PropertyExpander.expand(extra_policy); - URL policyURL; - File policyFile = new File(extra_policy); - if (policyFile.exists()) { - policyURL = - new URL("file:" + policyFile.getCanonicalPath()); - } else { - policyURL = new URL(extra_policy); - } - if (debug != null) { - debug.println("reading " + policyURL); - } - init(policyURL); - } catch (Exception e) { - // ignore. - if (debug != null) { - debug.println("caught exception: " + e); - } - - } - if (overrideAll) { - if (debug != null) { - debug.println("overriding other policies!"); - } - return; - } - } - } - - int n = 1; - boolean loaded_one = false; - String policy_url; - - while ((policy_url = Security.getProperty(AUTH_POLICY_URL+n)) != null) { - try { - policy_url = PropertyExpander.expand(policy_url).replace - (File.separatorChar, '/'); - if (debug != null) { - debug.println("reading " + policy_url); - } - init(new URL(policy_url)); - loaded_one = true; - } catch (Exception e) { - if (debug != null) { - debug.println("Debug info only. Error reading policy " + e); - e.printStackTrace(); - } - // ignore that policy - } - n++; - } - - if (loaded_one == false) { - // do not load a static policy - } - } - - /** - * Checks public key. If it is marked as trusted in - * the identity database, add it to the policy - * with the AllPermission. - */ - private boolean checkForTrustedIdentity(final Certificate cert) { - return false; - } - - /** - * Reads a policy configuration into the Policy object using a - * Reader object. - * - * @param policyFile the policy Reader object. - */ - private void init(URL policy) { - PolicyParser pp = new PolicyParser(expandProperties); - try (InputStreamReader isr - = new InputStreamReader(PolicyUtil.getInputStream(policy))) { - pp.read(isr); - KeyStore keyStore = initKeyStore(policy, pp.getKeyStoreUrl(), - pp.getKeyStoreType()); - Enumeration<GrantEntry> enum_ = pp.grantElements(); - while (enum_.hasMoreElements()) { - GrantEntry ge = enum_.nextElement(); - addGrantEntry(ge, keyStore); - } - } catch (PolicyParser.ParsingException pe) { - System.err.println(AUTH_POLICY + - rb.getString(".error.parsing.") + policy); - System.err.println(AUTH_POLICY + rb.getString("COLON") + - pe.getMessage()); - if (debug != null) { - pe.printStackTrace(); - } - } catch (Exception e) { - if (debug != null) { - debug.println("error parsing " + policy); - debug.println(e.toString()); - e.printStackTrace(); - } - } - } - - /** - * Given a PermissionEntry, create a codeSource. - * - * @return null if signedBy alias is not recognized - */ - CodeSource getCodeSource(GrantEntry ge, KeyStore keyStore) - throws java.net.MalformedURLException - { - Certificate[] certs = null; - if (ge.signedBy != null) { - certs = getCertificates(keyStore, ge.signedBy); - if (certs == null) { - // we don't have a key for this alias, - // just return - if (debug != null) { - debug.println(" no certs for alias " + - ge.signedBy + ", ignoring."); - } - return null; - } - } - - URL location; - if (ge.codeBase != null) { - location = new URL(ge.codeBase); - } else { - location = null; - } - - if (ge.principals == null || ge.principals.size() == 0) { - return (canonicalizeCodebase - (new CodeSource(location, certs), - false)); - } else { - return (canonicalizeCodebase - (new SubjectCodeSource(null, ge.principals, location, certs), - false)); - } - } - - /** - * Add one policy entry to the vector. - */ - private void addGrantEntry(GrantEntry ge, KeyStore keyStore) { - - if (debug != null) { - debug.println("Adding policy entry: "); - debug.println(" signedBy " + ge.signedBy); - debug.println(" codeBase " + ge.codeBase); - if (ge.principals != null) { - for (PrincipalEntry pppe : ge.principals) { - debug.println(" " + pppe.getPrincipalClass() + - " " + pppe.getPrincipalName()); - } - } - debug.println(); - } - - try { - CodeSource codesource = getCodeSource(ge, keyStore); - // skip if signedBy alias was unknown... - if (codesource == null) return; - - PolicyEntry entry = new PolicyEntry(codesource); - Enumeration<PermissionEntry> enum_ = ge.permissionElements(); - while (enum_.hasMoreElements()) { - PermissionEntry pe = enum_.nextElement(); - try { - // XXX special case PrivateCredentialPermission-SELF - Permission perm; - if (pe.permission.equals - ("javax.security.auth.PrivateCredentialPermission") && - pe.name.endsWith(" self")) { - perm = getInstance(pe.permission, - pe.name + " \"self\"", - pe.action); - } else { - perm = getInstance(pe.permission, - pe.name, - pe.action); - } - entry.add(perm); - if (debug != null) { - debug.println(" "+perm); - } - } catch (ClassNotFoundException cnfe) { - Certificate[] certs; - if (pe.signedBy != null) { - certs = getCertificates(keyStore, pe.signedBy); - } else { - certs = null; - } - - // only add if we had no signer or we had - // a signer and found the keys for it. - if (certs != null || pe.signedBy == null) { - Permission perm = new UnresolvedPermission( - pe.permission, - pe.name, - pe.action, - certs); - entry.add(perm); - if (debug != null) { - debug.println(" "+perm); - } - } - } catch (java.lang.reflect.InvocationTargetException ite) { - System.err.println - (AUTH_POLICY + - rb.getString(".error.adding.Permission.") + - pe.permission + - rb.getString("SPACE") + - ite.getTargetException()); - } catch (Exception e) { - System.err.println - (AUTH_POLICY + - rb.getString(".error.adding.Permission.") + - pe.permission + - rb.getString("SPACE") + - e); - } - } - policyEntries.addElement(entry); - } catch (Exception e) { - System.err.println - (AUTH_POLICY + - rb.getString(".error.adding.Entry.") + - ge + - rb.getString("SPACE") + - e); - } - - if (debug != null) { - debug.println(); - } - } - - /** - * Returns a new Permission object of the given Type. The Permission is - * created by getting the - * Class object using the <code>Class.forName</code> method, and using - * the reflection API to invoke the (String name, String actions) - * constructor on the - * object. - * - * @param type the type of Permission being created. - * @param name the name of the Permission being created. - * @param actions the actions of the Permission being created. - * - * @exception ClassNotFoundException if the particular Permission - * class could not be found. - * - * @exception IllegalAccessException if the class or initializer is - * not accessible. - * - * @exception InstantiationException if getInstance tries to - * instantiate an abstract class or an interface, or if the - * instantiation fails for some other reason. - * - * @exception NoSuchMethodException if the (String, String) constructor - * is not found. - * - * @exception InvocationTargetException if the underlying Permission - * constructor throws an exception. - * - */ - private static final Permission getInstance(String type, - String name, - String actions) - throws ClassNotFoundException, - InstantiationException, - IllegalAccessException, - NoSuchMethodException, - InvocationTargetException - { - //XXX we might want to keep a hash of created factories... - Class<?> pc = Class.forName(type); - Constructor<?> c = pc.getConstructor(PARAMS); - return (Permission) c.newInstance(new Object[] { name, actions }); - } - - /** - * Fetch all certs associated with this alias. - */ - Certificate[] getCertificates(KeyStore keyStore, String aliases) { - - Vector<Certificate> vcerts = null; - - StringTokenizer st = new StringTokenizer(aliases, ","); - int n = 0; - - while (st.hasMoreTokens()) { - String alias = st.nextToken().trim(); - n++; - Certificate cert = null; - // See if this alias's cert has already been cached - cert = (Certificate) aliasMapping.get(alias); - if (cert == null && keyStore != null) { - - try { - cert = keyStore.getCertificate(alias); - } catch (KeyStoreException kse) { - // never happens, because keystore has already been loaded - // when we call this - } - if (cert != null) { - aliasMapping.put(alias, cert); - aliasMapping.put(cert, alias); - } - } - - if (cert != null) { - if (vcerts == null) { - vcerts = new Vector<Certificate>(); - } - vcerts.addElement(cert); - } - } - - // make sure n == vcerts.size, since we are doing a logical *and* - if (vcerts != null && n == vcerts.size()) { - Certificate[] certs = new Certificate[vcerts.size()]; - vcerts.copyInto(certs); - return certs; - } else { - return null; - } - } - - /** - * Enumerate all the entries in the global policy object. - * This method is used by policy admin tools. The tools - * should use the Enumeration methods on the returned object - * to fetch the elements sequentially. - */ - private final synchronized Enumeration<PolicyEntry> elements() { - return policyEntries.elements(); - } - - @Override - public PermissionCollection getPermissions(final Subject subject, - final CodeSource codesource) { - - // 1) if code instantiates PolicyFile directly, then it will need - // all the permissions required for the PolicyFile initialization - // 2) if code calls Policy.getPolicy, then it simply needs - // AuthPermission(getPolicy), and the javax.security.auth.Policy - // implementation instantiates PolicyFile in a doPrivileged block - // 3) if after instantiating a Policy (either via #1 or #2), - // code calls getPermissions, PolicyFile wraps the call - // in a doPrivileged block. - return AccessController.doPrivileged - (new PrivilegedAction<PermissionCollection>() { - @Override public PermissionCollection run() { - SubjectCodeSource scs = new SubjectCodeSource( - subject, null, - codesource == null ? null : codesource.getLocation(), - codesource == null ? null : codesource.getCertificates()); - if (initialized) { - return getPermissions(new Permissions(), scs); - } else { - return new PolicyPermissions(AuthPolicyFile.this, scs); - } - } - }); - } - - /** - * Examines the global policy for the specified CodeSource, and - * creates a PermissionCollection object with - * the set of permissions for that principal's protection domain. - * - * @param CodeSource the codesource associated with the caller. - * This encapsulates the original location of the code (where the code - * came from) and the public key(s) of its signer. - * - * @return the set of permissions according to the policy. - */ - PermissionCollection getPermissions(CodeSource codesource) { - - if (initialized) { - return getPermissions(new Permissions(), codesource); - } else { - return new PolicyPermissions(this, codesource); - } - } - - /** - * Examines the global policy for the specified CodeSource, and - * creates a PermissionCollection object with - * the set of permissions for that principal's protection domain. - * - * @param permissions the permissions to populate - * @param codesource the codesource associated with the caller. - * This encapsulates the original location of the code (where the code - * came from) and the public key(s) of its signer. - * - * @return the set of permissions according to the policy. - */ - Permissions getPermissions(final Permissions perms, - final CodeSource cs) - { - if (!initialized) { - init(); - } - - final CodeSource[] codesource = {null}; - - codesource[0] = canonicalizeCodebase(cs, true); - - if (debug != null) { - debug.println("evaluate(" + codesource[0] + ")\n"); - } - - // needs to be in a begin/endPrivileged block because - // codesource.implies calls URL.equals which does an - // InetAddress lookup - - for (int i = 0; i < policyEntries.size(); i++) { - - PolicyEntry entry = policyEntries.elementAt(i); - - if (debug != null) { - debug.println("PolicyFile CodeSource implies: " + - entry.codesource.toString() + "\n\n" + - "\t" + codesource[0].toString() + "\n\n"); - } - - if (entry.codesource.implies(codesource[0])) { - for (int j = 0; j < entry.permissions.size(); j++) { - Permission p = entry.permissions.elementAt(j); - if (debug != null) { - debug.println(" granting " + p); - } - if (!addSelfPermissions(p, entry.codesource, - codesource[0], perms)) { - // we could check for duplicates - // before adding new permissions, - // but the SubjectDomainCombiner - // already checks for duplicates later - perms.add(p); - } - } - } - } - - // now see if any of the keys are trusted ids. - - if (!ignoreIdentityScope) { - Certificate[] certs = codesource[0].getCertificates(); - if (certs != null) { - for (int k=0; k < certs.length; k++) { - if (aliasMapping.get(certs[k]) == null && - checkForTrustedIdentity(certs[k])) { - // checkForTrustedIdentity added it - // to the policy for us. next time - // around we'll find it. This time - // around we need to add it. - perms.add(new java.security.AllPermission()); - } - } - } - } - return perms; - } - - /** - * Returns true if 'Self' permissions were added to the provided - * 'perms', and false otherwise. - * - * <p> - * - * @param p check to see if this Permission is a "SELF" - * PrivateCredentialPermission. <p> - * - * @param entryCs the codesource for the Policy entry. - * - * @param accCs the codesource for from the current AccessControlContext. - * - * @param perms the PermissionCollection where the individual - * PrivateCredentialPermissions will be added. - */ - private boolean addSelfPermissions(final Permission p, - CodeSource entryCs, - CodeSource accCs, - Permissions perms) { - - if (!(p instanceof PrivateCredentialPermission)) { - return false; - } - - if (!(entryCs instanceof SubjectCodeSource)) { - return false; - } - - PrivateCredentialPermission pcp = (PrivateCredentialPermission)p; - SubjectCodeSource scs = (SubjectCodeSource)entryCs; - - // see if it is a SELF permission - String[][] pPrincipals = pcp.getPrincipals(); - if (pPrincipals.length <= 0 || - !pPrincipals[0][0].equalsIgnoreCase("self") || - !pPrincipals[0][1].equalsIgnoreCase("self")) { - - // regular PrivateCredentialPermission - return false; - } else { - - // granted a SELF permission - create a - // PrivateCredentialPermission for each - // of the Policy entry's CodeSource Principals - - if (scs.getPrincipals() == null) { - // XXX SubjectCodeSource has no Subject??? - return true; - } - - for (PrincipalEntry principal : scs.getPrincipals()) { - - // if the Policy entry's Principal does not contain a - // WILDCARD for the Principal name, then a - // new PrivateCredentialPermission is created - // for the Principal listed in the Policy entry. - // if the Policy entry's Principal contains a WILDCARD - // for the Principal name, then a new - // PrivateCredentialPermission is created - // for each Principal associated with the Subject - // in the current ACC. - - String[][] principalInfo = getPrincipalInfo(principal, accCs); - - for (int i = 0; i < principalInfo.length; i++) { - - // here's the new PrivateCredentialPermission - - PrivateCredentialPermission newPcp = - new PrivateCredentialPermission - (pcp.getCredentialClass() + - " " + - principalInfo[i][0] + - " " + - "\"" + principalInfo[i][1] + "\"", - "read"); - - if (debug != null) { - debug.println("adding SELF permission: " + - newPcp.toString()); - } - - perms.add(newPcp); - } - } - } - return true; - } - - /** - * return the principal class/name pair in the 2D array. - * array[x][y]: x corresponds to the array length. - * if (y == 0), it's the principal class. - * if (y == 1), it's the principal name. - */ - private String[][] getPrincipalInfo(PrincipalEntry principal, - final CodeSource accCs) { - - // there are 3 possibilities: - // 1) the entry's Principal class and name are not wildcarded - // 2) the entry's Principal name is wildcarded only - // 3) the entry's Principal class and name are wildcarded - - if (!principal.getPrincipalClass().equals - (PrincipalEntry.WILDCARD_CLASS) && - !principal.getPrincipalName().equals - (PrincipalEntry.WILDCARD_NAME)) { - - // build a PrivateCredentialPermission for the principal - // from the Policy entry - String[][] info = new String[1][2]; - info[0][0] = principal.getPrincipalClass(); - info[0][1] = principal.getPrincipalName(); - return info; - - } else if (!principal.getPrincipalClass().equals - (PrincipalEntry.WILDCARD_CLASS) && - principal.getPrincipalName().equals - (PrincipalEntry.WILDCARD_NAME)) { - - // build a PrivateCredentialPermission for all - // the Subject's principals that are instances of principalClass - - // the accCs is guaranteed to be a SubjectCodeSource - // because the earlier CodeSource.implies succeeded - SubjectCodeSource scs = (SubjectCodeSource)accCs; - - Set<? extends Principal> principalSet = null; - try { - // principal.principalClass should extend Principal - // If it doesn't, we should stop here with a ClassCastException. - @SuppressWarnings("unchecked") - Class<? extends Principal> pClass = (Class<? extends Principal>) - Class.forName(principal.getPrincipalClass(), false, - ClassLoader.getSystemClassLoader()); - principalSet = scs.getSubject().getPrincipals(pClass); - } catch (Exception e) { - if (debug != null) { - debug.println("problem finding Principal Class " + - "when expanding SELF permission: " + - e.toString()); - } - } - - if (principalSet == null) { - // error - return new String[0][0]; - } - - String[][] info = new String[principalSet.size()][2]; - - int i = 0; - for (Principal p : principalSet) { - info[i][0] = p.getClass().getName(); - info[i][1] = p.getName(); - i++; - } - return info; - - } else { - - // build a PrivateCredentialPermission for every - // one of the current Subject's principals - - // the accCs is guaranteed to be a SubjectCodeSource - // because the earlier CodeSource.implies succeeded - SubjectCodeSource scs = (SubjectCodeSource)accCs; - Set<Principal> principalSet = scs.getSubject().getPrincipals(); - - String[][] info = new String[principalSet.size()][2]; - - int i = 0; - for (Principal p : principalSet) { - info[i][0] = p.getClass().getName(); - info[i][1] = p.getName(); - i++; - } - return info; - } - } - - /* - * Returns the signer certificates from the list of certificates associated - * with the given code source. - * - * The signer certificates are those certificates that were used to verify - * signed code originating from the codesource location. - * - * This method assumes that in the given code source, each signer - * certificate is followed by its supporting certificate chain - * (which may be empty), and that the signer certificate and its - * supporting certificate chain are ordered bottom-to-top (i.e., with the - * signer certificate first and the (root) certificate authority last). - */ - Certificate[] getSignerCertificates(CodeSource cs) { - Certificate[] certs = null; - if ((certs = cs.getCertificates()) == null) { - return null; - } - for (int i = 0; i < certs.length; i++) { - if (!(certs[i] instanceof X509Certificate)) - return cs.getCertificates(); - } - - // Do we have to do anything? - int i = 0; - int count = 0; - while (i < certs.length) { - count++; - while (((i+1) < certs.length) - && ((X509Certificate)certs[i]).getIssuerDN().equals( - ((X509Certificate)certs[i+1]).getSubjectDN())) { - i++; - } - i++; - } - if (count == certs.length) { - // Done - return certs; - } - - ArrayList<Certificate> userCertList = new ArrayList<>(); - i = 0; - while (i < certs.length) { - userCertList.add(certs[i]); - while (((i+1) < certs.length) - && ((X509Certificate)certs[i]).getIssuerDN().equals( - ((X509Certificate)certs[i+1]).getSubjectDN())) { - i++; - } - i++; - } - Certificate[] userCerts = new Certificate[userCertList.size()]; - userCertList.toArray(userCerts); - return userCerts; - } - - private CodeSource canonicalizeCodebase(CodeSource cs, - boolean extractSignerCerts) { - CodeSource canonCs = cs; - if (cs.getLocation() != null && - cs.getLocation().getProtocol().equalsIgnoreCase("file")) { - try { - String path = cs.getLocation().getFile().replace - ('/', - File.separatorChar); - URL csUrl = null; - if (path.endsWith("*")) { - // remove trailing '*' because it causes canonicalization - // to fail on win32 - path = path.substring(0, path.length()-1); - boolean appendFileSep = false; - if (path.endsWith(File.separator)) { - appendFileSep = true; - } - if (path.equals("")) { - path = System.getProperty("user.dir"); - } - File f = new File(path); - path = f.getCanonicalPath(); - StringBuilder sb = new StringBuilder(path); - // reappend '*' to canonicalized filename (note that - // canonicalization may have removed trailing file - // separator, so we have to check for that, too) - if (!path.endsWith(File.separator) && - (appendFileSep || f.isDirectory())) { - sb.append(File.separatorChar); - } - sb.append('*'); - path = sb.toString(); - } else { - path = new File(path).getCanonicalPath(); - } - csUrl = new File(path).toURL(); - - if (cs instanceof SubjectCodeSource) { - SubjectCodeSource scs = (SubjectCodeSource)cs; - if (extractSignerCerts) { - canonCs = new SubjectCodeSource(scs.getSubject(), - scs.getPrincipals(), - csUrl, - getSignerCertificates(scs)); - } else { - canonCs = new SubjectCodeSource(scs.getSubject(), - scs.getPrincipals(), - csUrl, - scs.getCertificates()); - } - } else { - if (extractSignerCerts) { - canonCs = new CodeSource(csUrl, - getSignerCertificates(cs)); - } else { - canonCs = new CodeSource(csUrl, - cs.getCertificates()); - } - } - } catch (IOException ioe) { - // leave codesource as it is, unless we have to extract its - // signer certificates - if (extractSignerCerts) { - if (!(cs instanceof SubjectCodeSource)) { - canonCs = new CodeSource(cs.getLocation(), - getSignerCertificates(cs)); - } else { - SubjectCodeSource scs = (SubjectCodeSource)cs; - canonCs = new SubjectCodeSource(scs.getSubject(), - scs.getPrincipals(), - scs.getLocation(), - getSignerCertificates(scs)); - } - } - } - } else { - if (extractSignerCerts) { - if (!(cs instanceof SubjectCodeSource)) { - canonCs = new CodeSource(cs.getLocation(), - getSignerCertificates(cs)); - } else { - SubjectCodeSource scs = (SubjectCodeSource)cs; - canonCs = new SubjectCodeSource(scs.getSubject(), - scs.getPrincipals(), - scs.getLocation(), - getSignerCertificates(scs)); - } - } - } - return canonCs; - } - - /** - * Each entry in the policy configuration file is represented by a - * PolicyEntry object. <p> - * - * A PolicyEntry is a (CodeSource,Permission) pair. The - * CodeSource contains the (URL, PublicKey) that together identify - * where the Java bytecodes come from and who (if anyone) signed - * them. The URL could refer to localhost. The URL could also be - * null, meaning that this policy entry is given to all comers, as - * long as they match the signer field. The signer could be null, - * meaning the code is not signed. <p> - * - * The Permission contains the (Type, Name, Action) triplet. <p> - * - * For now, the Policy object retrieves the public key from the - * X.509 certificate on disk that corresponds to the signedBy - * alias specified in the Policy config file. For reasons of - * efficiency, the Policy object keeps a hashtable of certs already - * read in. This could be replaced by a secure internal key - * store. - * - * <p> - * For example, the entry - * <pre> - * permission java.io.File "/tmp", "read,write", - * signedBy "Duke"; - * </pre> - * is represented internally - * <pre> - * - * FilePermission f = new FilePermission("/tmp", "read,write"); - * PublicKey p = publickeys.get("Duke"); - * URL u = InetAddress.getLocalHost(); - * CodeBase c = new CodeBase( p, u ); - * pe = new PolicyEntry(f, c); - * </pre> - * - * @author Marianne Mueller - * @author Roland Schemers - * @see java.security.CodeSource - * @see java.security.Policy - * @see java.security.Permissions - * @see java.security.ProtectionDomain - */ - private static class PolicyEntry { - - CodeSource codesource; - Vector<Permission> permissions; - - /** - * Given a Permission and a CodeSource, create a policy entry. - * - * XXX Decide if/how to add validity fields and "purpose" fields to - * XXX policy entries - * - * @param cs the CodeSource, which encapsulates the URL and the public - * key attributes from the policy config file. Validity checks - * are performed on the public key before PolicyEntry is called. - * - */ - PolicyEntry(CodeSource cs) { - this.codesource = cs; - this.permissions = new Vector<Permission>(); - } - - /** - * add a Permission object to this entry. - */ - void add(Permission p) { - permissions.addElement(p); - } - - /** - * Return the CodeSource for this policy entry - */ - CodeSource getCodeSource() { - return this.codesource; - } - - @Override - public String toString(){ - StringBuilder sb = new StringBuilder(); - sb.append(rb.getString("LPARAM")); - sb.append(getCodeSource()); - sb.append("\n"); - for (int j = 0; j < permissions.size(); j++) { - Permission p = permissions.elementAt(j); - sb.append(rb.getString("SPACE")); - sb.append(rb.getString("SPACE")); - sb.append(p); - sb.append(rb.getString("NEWLINE")); - } - sb.append(rb.getString("RPARAM")); - sb.append(rb.getString("NEWLINE")); - return sb.toString(); - } - - } -} - -@SuppressWarnings("deprecation") -class PolicyPermissions extends PermissionCollection { - - private static final long serialVersionUID = -1954188373270545523L; - - private CodeSource codesource; - private Permissions perms; - private AuthPolicyFile policy; - private boolean notInit; // have we pulled in the policy permissions yet? - private Vector<Permission> additionalPerms; - - PolicyPermissions(AuthPolicyFile policy, - CodeSource codesource) - { - this.codesource = codesource; - this.policy = policy; - this.perms = null; - this.notInit = true; - this.additionalPerms = null; - } - - @Override - public void add(Permission permission) { - if (isReadOnly()) - throw new SecurityException - (AuthPolicyFile.rb.getString - ("attempt.to.add.a.Permission.to.a.readonly.PermissionCollection")); - - if (perms == null) { - if (additionalPerms == null) { - additionalPerms = new Vector<Permission>(); - } - additionalPerms.add(permission); - } else { - perms.add(permission); - } - } - - private synchronized void init() { - if (notInit) { - if (perms == null) { - perms = new Permissions(); - } - if (additionalPerms != null) { - Enumeration<Permission> e = additionalPerms.elements(); - while (e.hasMoreElements()) { - perms.add(e.nextElement()); - } - additionalPerms = null; - } - policy.getPermissions(perms, codesource); - notInit = false; - } - } - - @Override - public boolean implies(Permission permission) { - if (notInit) { - init(); - } - return perms.implies(permission); - } - - @Override - public Enumeration<Permission> elements() { - if (notInit) { - init(); - } - return perms.elements(); - } - - @Override - public String toString() { - if (notInit) { - init(); - } - return perms.toString(); - } -}
--- a/src/java.base/share/classes/sun/security/provider/PolicyFile.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/share/classes/sun/security/provider/PolicyFile.java Thu Mar 08 10:18:28 2018 -0800 @@ -51,13 +51,6 @@ * This class represents a default Policy implementation for the * "JavaPolicy" type. * - * Note: - * For backward compatibility with JAAS 1.0 it loads - * both java.auth.policy and java.policy. However, it - * is recommended that java.auth.policy not be used - * and that java.policy contain all grant entries including - * those that contain principal-based entries. - * * <p> This object stores the policy for the entire Java runtime, * and is the amalgamation of multiple static policy * configurations that resides in files. @@ -75,17 +68,13 @@ * are needed in order for the runtime to operate correctly. * <li> * Loop through the <code>java.security.Security</code> properties, - * <i>policy.url.1</i>, <i>policy.url.2</i>, ..., - * <i>policy.url.X</i>" and - * <i>auth.policy.url.1</i>, <i>auth.policy.url.2</i>, ..., - * <i>auth.policy.url.X</i>". These properties are set + * and <i>policy.url.1</i>, <i>policy.url.2</i>, ..., + * <i>policy.url.X</i>". These properties are set * in the Java security properties file, which is located in the file named * <JAVA_HOME>/conf/security/java.security. * Each property value specifies a <code>URL</code> pointing to a * policy file to be loaded. Read in and load each policy. * - * <i>auth.policy.url</i> is supported only for backward compatibility. - * * If none of these could be loaded, use a builtin static policy * equivalent to the conf/security/java.policy file. * @@ -98,21 +87,7 @@ * <i>policy.allowSystemProperty</i> is set to <i>true</i>), * also load that policy. * - * <li> - * The <code>java.lang.System</code> property - * <i>java.security.auth.policy</i> may also be set to a - * <code>URL</code> pointing to another policy file - * (which is the case when a user uses the -D switch at runtime). - * If this property is defined, and its use is allowed by the - * security property file (the Security property, - * <i>policy.allowSystemProperty</i> is set to <i>true</i>), - * also load that policy. - * - * <i>java.security.auth.policy</i> is supported only for backward - * compatibility. - * - * If the <i>java.security.policy</i> or - * <i>java.security.auth.policy</i> property is defined using + * If the <i>java.security.policy</i> property is defined using * "==" (rather than "="), then load the specified policy file and ignore * all other configured policies. Note, that the default.policy file is * also loaded, as specified in the first step of the algorithm above. @@ -269,8 +244,6 @@ "javax.security.auth.x500.X500Principal"; private static final String POLICY = "java.security.policy"; private static final String POLICY_URL = "policy.url."; - private static final String AUTH_POLICY = "java.security.auth.policy"; - private static final String AUTH_POLICY_URL = "auth.policy.url."; private static final int DEFAULT_CACHE_SIZE = 1; @@ -411,14 +384,6 @@ /** * Caller did not specify URL via Policy.getInstance. * Read from URLs listed in the java.security properties file. - * - * We call initPolicyFile with POLICY, POLICY_URL and then - * call it with AUTH_POLICY and AUTH_POLICY_URL. - * So first we will process the JAVA standard policy - * and then process the JAVA AUTH Policy. - * This is for backward compatibility as well as to handle - * cases where the user has a single unified policyfile - * with both java policy entries and auth entries */ boolean loaded_one = initPolicyFile(POLICY, POLICY_URL, newInfo); @@ -428,8 +393,6 @@ // use static policy if all else fails initStaticPolicy(newInfo); } - - initPolicyFile(AUTH_POLICY, AUTH_POLICY_URL, newInfo); } }
--- a/src/java.base/share/classes/sun/security/util/Resources.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/share/classes/sun/security/util/Resources.java Thu Mar 08 10:18:28 2018 -0800 @@ -150,11 +150,6 @@ // sun.security.pkcs11.SunPKCS11 {"PKCS11.Token.providerName.Password.", "PKCS11 Token [{0}] Password: "}, - - /* --- DEPRECATED --- */ - // javax.security.auth.Policy - {"unable.to.instantiate.Subject.based.policy", - "unable to instantiate Subject-based policy"} };
--- a/src/java.base/unix/native/libnio/ch/Net.c Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/unix/native/libnio/ch/Net.c Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2018, 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 @@ -293,8 +293,7 @@ int sa_len = 0; int rv; - if (NET_InetAddressToSockaddr(env, iao, port, &sa, &sa_len, - preferIPv6) != 0) { + if (NET_InetAddressToSockaddr(env, iao, port, &sa, &sa_len, preferIPv6) != 0) { return IOS_THROWN; } @@ -761,11 +760,11 @@ break; #endif case ECONNREFUSED: + case ETIMEDOUT: + case ENOTCONN: xn = JNU_JAVANETPKG "ConnectException"; break; - case ETIMEDOUT: - xn = JNU_JAVANETPKG "ConnectException"; - break; + case EHOSTUNREACH: xn = JNU_JAVANETPKG "NoRouteToHostException"; break;
--- a/src/java.base/unix/native/libnio/ch/SocketChannelImpl.c Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/unix/native/libnio/ch/SocketChannelImpl.c Thu Mar 08 10:18:28 2018 -0800 @@ -59,23 +59,29 @@ poller.events = POLLOUT; poller.revents = 0; result = poll(&poller, 1, block ? -1 : 0); + if (result < 0) { - JNU_ThrowIOExceptionWithLastError(env, "Poll failed"); - return IOS_THROWN; + if (errno == EINTR) { + return IOS_INTERRUPTED; + } else { + JNU_ThrowIOExceptionWithLastError(env, "poll failed"); + return IOS_THROWN; + } } if (!block && (result == 0)) - return IOS_UNAVAILABLE; + return IOS_UNAVAILABLE; - if (poller.revents) { + if (result > 0) { errno = 0; result = getsockopt(fd, SOL_SOCKET, SO_ERROR, &error, &n); if (result < 0) { - handleSocketError(env, errno); - return JNI_FALSE; + return handleSocketError(env, errno); } else if (error) { - handleSocketError(env, error); - return JNI_FALSE; + return handleSocketError(env, error); + } else if ((poller.revents & POLLHUP) != 0) { + return handleSocketError(env, ENOTCONN); } + // connected return 1; } return 0;
--- a/src/java.base/windows/native/libnet/NetworkInterface_winXP.c Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/windows/native/libnet/NetworkInterface_winXP.c Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, 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 @@ -39,14 +39,15 @@ #ifdef DEBUG void printnif (netif *nif) { #ifdef _WIN64 - printf ("nif:0x%I64x name:%s\n", nif,nif->name); + printf ("nif:0x%I64x name:%s\n", (UINT_PTR)nif, nif->name); #else - printf ("nif:0x%x name:%s\n", nif,nif->name); + printf ("nif:0x%x name:%s\n", nif, nif->name); #endif if (nif->dNameIsUnicode) { - printf ("dName:%S index:%d ", nif->displayName,nif->index); + printf ("dName:%S index:%d ", (unsigned short *)nif->displayName, + nif->index); } else { - printf ("dName:%s index:%d ", nif->displayName,nif->index); + printf ("dName:%s index:%d ", nif->displayName, nif->index); } printf ("naddrs:%d\n", nif->naddrs); }
--- a/src/java.base/windows/native/libnio/ch/SocketChannelImpl.c Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.base/windows/native/libnio/ch/SocketChannelImpl.c Thu Mar 08 10:18:28 2018 -0800 @@ -58,9 +58,7 @@ jobject fdo, jboolean block) { int optError = 0; - int lastError = 0; - int result = 0; - int retry = 0; + int result; int n = sizeof(int); jint fd = fdval(env, fdo); fd_set wr, ex; @@ -73,64 +71,33 @@ result = select(fd+1, 0, &wr, &ex, block ? NULL : &t); - /* save last winsock error */ - if (result == SOCKET_ERROR) { - lastError = WSAGetLastError(); - } - - if (block) { /* must configure socket back to blocking state */ - u_long argp = 0; - int r = ioctlsocket(fd, FIONBIO, &argp); - if (r == SOCKET_ERROR) { - handleSocketError(env, WSAGetLastError()); - } - } - if (result == 0) { /* timeout */ return block ? 0 : IOS_UNAVAILABLE; } else { - if (result == SOCKET_ERROR) { /* select failed */ - handleSocketError(env, lastError); + if (result == SOCKET_ERROR) { /* select failed */ + handleSocketError(env, WSAGetLastError()); return IOS_THROWN; } } - /* - * Socket is writable or error occurred. On some Windows editions - * the socket will appear writable when the connect fails so we - * check for error rather than writable. - */ - if (!FD_ISSET(fd, &ex)) { - return 1; /* connection established */ + // connection established if writable and no error to check + if (FD_ISSET(fd, &wr) && !FD_ISSET(fd, &ex)) { + return 1; } - /* - * A getsockopt( SO_ERROR ) may indicate success on NT4 even - * though the connection has failed. The workaround is to allow - * winsock to be scheduled and this is done via by yielding. - * As the yield approach is problematic in heavy load situations - * we attempt up to 3 times to get the failure reason. - */ - for (retry=0; retry<3; retry++) { - result = getsockopt((SOCKET)fd, - SOL_SOCKET, - SO_ERROR, - (char *)&optError, - &n); - if (result == SOCKET_ERROR) { - int lastError = WSAGetLastError(); - if (lastError == WSAEINPROGRESS) { - return IOS_UNAVAILABLE; - } - NET_ThrowNew(env, lastError, "getsockopt"); - return IOS_THROWN; + result = getsockopt((SOCKET)fd, + SOL_SOCKET, + SO_ERROR, + (char *)&optError, + &n); + if (result == SOCKET_ERROR) { + int lastError = WSAGetLastError(); + if (lastError == WSAEINPROGRESS) { + return IOS_UNAVAILABLE; } - if (optError) { - break; - } - Sleep(0); + NET_ThrowNew(env, lastError, "getsockopt"); + return IOS_THROWN; } - if (optError != NO_ERROR) { handleSocketError(env, optError); return IOS_THROWN;
--- a/src/java.prefs/windows/classes/java/util/prefs/WindowsPreferences.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.prefs/windows/classes/java/util/prefs/WindowsPreferences.java Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2018, 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 @@ -172,22 +172,22 @@ /** * Java wrapper for Windows registry API RegOpenKey() */ - private static native int[] WindowsRegOpenKey(int hKey, byte[] subKey, - int securityMask); + private static native long[] WindowsRegOpenKey(long hKey, byte[] subKey, + int securityMask); /** * Retries RegOpenKey() MAX_ATTEMPTS times before giving up. */ - private static int[] WindowsRegOpenKey1(int hKey, byte[] subKey, - int securityMask) { - int[] result = WindowsRegOpenKey(hKey, subKey, securityMask); + private static long[] WindowsRegOpenKey1(long hKey, byte[] subKey, + int securityMask) { + long[] result = WindowsRegOpenKey(hKey, subKey, securityMask); if (result[ERROR_CODE] == ERROR_SUCCESS) { return result; } else if (result[ERROR_CODE] == ERROR_FILE_NOT_FOUND) { logger().warning("Trying to recreate Windows registry node " + byteArrayToString(subKey) + " at root 0x" + - Integer.toHexString(hKey) + "."); + Long.toHexString(hKey) + "."); // Try recreation - int handle = WindowsRegCreateKeyEx(hKey, subKey)[NATIVE_HANDLE]; + long handle = WindowsRegCreateKeyEx(hKey, subKey)[NATIVE_HANDLE]; WindowsRegCloseKey(handle); return WindowsRegOpenKey(hKey, subKey, securityMask); } else if (result[ERROR_CODE] != ERROR_ACCESS_DENIED) { @@ -211,18 +211,18 @@ /** * Java wrapper for Windows registry API RegCloseKey() */ - private static native int WindowsRegCloseKey(int hKey); + private static native int WindowsRegCloseKey(long hKey); /** * Java wrapper for Windows registry API RegCreateKeyEx() */ - private static native int[] WindowsRegCreateKeyEx(int hKey, byte[] subKey); + private static native long[] WindowsRegCreateKeyEx(long hKey, byte[] subKey); /** * Retries RegCreateKeyEx() MAX_ATTEMPTS times before giving up. */ - private static int[] WindowsRegCreateKeyEx1(int hKey, byte[] subKey) { - int[] result = WindowsRegCreateKeyEx(hKey, subKey); + private static long[] WindowsRegCreateKeyEx1(long hKey, byte[] subKey) { + long[] result = WindowsRegCreateKeyEx(hKey, subKey); if (result[ERROR_CODE] == ERROR_SUCCESS) { return result; } else { @@ -245,17 +245,17 @@ /** * Java wrapper for Windows registry API RegDeleteKey() */ - private static native int WindowsRegDeleteKey(int hKey, byte[] subKey); + private static native int WindowsRegDeleteKey(long hKey, byte[] subKey); /** * Java wrapper for Windows registry API RegFlushKey() */ - private static native int WindowsRegFlushKey(int hKey); + private static native int WindowsRegFlushKey(long hKey); /** * Retries RegFlushKey() MAX_ATTEMPTS times before giving up. */ - private static int WindowsRegFlushKey1(int hKey) { + private static int WindowsRegFlushKey1(long hKey) { int result = WindowsRegFlushKey(hKey); if (result == ERROR_SUCCESS) { return result; @@ -280,17 +280,17 @@ /** * Java wrapper for Windows registry API RegQueryValueEx() */ - private static native byte[] WindowsRegQueryValueEx(int hKey, + private static native byte[] WindowsRegQueryValueEx(long hKey, byte[] valueName); /** * Java wrapper for Windows registry API RegSetValueEx() */ - private static native int WindowsRegSetValueEx(int hKey, byte[] valueName, + private static native int WindowsRegSetValueEx(long hKey, byte[] valueName, byte[] value); /** * Retries RegSetValueEx() MAX_ATTEMPTS times before giving up. */ - private static int WindowsRegSetValueEx1(int hKey, byte[] valueName, + private static int WindowsRegSetValueEx1(long hKey, byte[] valueName, byte[] value) { int result = WindowsRegSetValueEx(hKey, valueName, value); if (result == ERROR_SUCCESS) { @@ -316,18 +316,18 @@ /** * Java wrapper for Windows registry API RegDeleteValue() */ - private static native int WindowsRegDeleteValue(int hKey, byte[] valueName); + private static native int WindowsRegDeleteValue(long hKey, byte[] valueName); /** * Java wrapper for Windows registry API RegQueryInfoKey() */ - private static native int[] WindowsRegQueryInfoKey(int hKey); + private static native long[] WindowsRegQueryInfoKey(long hKey); /** * Retries RegQueryInfoKey() MAX_ATTEMPTS times before giving up. */ - private static int[] WindowsRegQueryInfoKey1(int hKey) { - int[] result = WindowsRegQueryInfoKey(hKey); + private static long[] WindowsRegQueryInfoKey1(long hKey) { + long[] result = WindowsRegQueryInfoKey(hKey); if (result[ERROR_CODE] == ERROR_SUCCESS) { return result; } else { @@ -351,13 +351,13 @@ /** * Java wrapper for Windows registry API RegEnumKeyEx() */ - private static native byte[] WindowsRegEnumKeyEx(int hKey, int subKeyIndex, + private static native byte[] WindowsRegEnumKeyEx(long hKey, int subKeyIndex, int maxKeyLength); /** * Retries RegEnumKeyEx() MAX_ATTEMPTS times before giving up. */ - private static byte[] WindowsRegEnumKeyEx1(int hKey, int subKeyIndex, + private static byte[] WindowsRegEnumKeyEx1(long hKey, int subKeyIndex, int maxKeyLength) { byte[] result = WindowsRegEnumKeyEx(hKey, subKeyIndex, maxKeyLength); if (result != null) { @@ -383,12 +383,12 @@ /** * Java wrapper for Windows registry API RegEnumValue() */ - private static native byte[] WindowsRegEnumValue(int hKey, int valueIndex, + private static native byte[] WindowsRegEnumValue(long hKey, int valueIndex, int maxValueNameLength); /** * Retries RegEnumValueEx() MAX_ATTEMPTS times before giving up. */ - private static byte[] WindowsRegEnumValue1(int hKey, int valueIndex, + private static byte[] WindowsRegEnumValue1(long hKey, int valueIndex, int maxValueNameLength) { byte[] result = WindowsRegEnumValue(hKey, valueIndex, maxValueNameLength); @@ -421,18 +421,18 @@ */ private WindowsPreferences(WindowsPreferences parent, String name) { super(parent, name); - int parentNativeHandle = parent.openKey(KEY_CREATE_SUB_KEY, KEY_READ); + long parentNativeHandle = parent.openKey(KEY_CREATE_SUB_KEY, KEY_READ); if (parentNativeHandle == NULL_NATIVE_HANDLE) { // if here, openKey failed and logged isBackingStoreAvailable = false; return; } - int[] result = + long[] result = WindowsRegCreateKeyEx1(parentNativeHandle, toWindowsName(name)); if (result[ERROR_CODE] != ERROR_SUCCESS) { logger().warning("Could not create windows registry node " + byteArrayToString(windowsAbsolutePath()) + - " at root 0x" + Integer.toHexString(rootNativeHandle()) + + " at root 0x" + Long.toHexString(rootNativeHandle()) + ". Windows RegCreateKeyEx(...) returned error code " + result[ERROR_CODE] + "."); isBackingStoreAvailable = false; @@ -451,14 +451,14 @@ * @param rootNativeHandle Native handle to one of Windows top level keys. * @param rootDirectory Path to root directory, as a byte-encoded string. */ - private WindowsPreferences(int rootNativeHandle, byte[] rootDirectory) { + private WindowsPreferences(long rootNativeHandle, byte[] rootDirectory) { super(null, ""); - int[] result = + long[] result = WindowsRegCreateKeyEx1(rootNativeHandle, rootDirectory); if (result[ERROR_CODE] != ERROR_SUCCESS) { logger().warning("Could not open/create prefs root node " + byteArrayToString(windowsAbsolutePath()) + - " at root 0x" + Integer.toHexString(rootNativeHandle()) + + " at root 0x" + Long.toHexString(rootNativeHandle()) + ". Windows RegCreateKeyEx(...) returned error code " + result[ERROR_CODE] + "."); isBackingStoreAvailable = false; @@ -497,7 +497,7 @@ * @see #openKey(int, byte[], int) * @see #closeKey(int) */ - private int openKey(int securityMask) { + private long openKey(int securityMask) { return openKey(securityMask, securityMask); } @@ -511,7 +511,7 @@ * @see #openKey(int, byte[], int) * @see #closeKey(int) */ - private int openKey(int mask1, int mask2) { + private long openKey(int mask1, int mask2) { return openKey(windowsAbsolutePath(), mask1, mask2); } @@ -527,12 +527,12 @@ * @see #openKey(int, byte[],int) * @see #closeKey(int) */ - private int openKey(byte[] windowsAbsolutePath, int mask1, int mask2) { + private long openKey(byte[] windowsAbsolutePath, int mask1, int mask2) { /* Check if key's path is short enough be opened at once otherwise use a path-splitting procedure */ if (windowsAbsolutePath.length <= MAX_WINDOWS_PATH_LENGTH + 1) { - int[] result = WindowsRegOpenKey1(rootNativeHandle(), - windowsAbsolutePath, mask1); + long[] result = WindowsRegOpenKey1(rootNativeHandle(), + windowsAbsolutePath, mask1); if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1) result = WindowsRegOpenKey1(rootNativeHandle(), windowsAbsolutePath, mask2); @@ -541,7 +541,7 @@ logger().warning("Could not open windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + + Long.toHexString(rootNativeHandle()) + ". Windows RegOpenKey(...) returned error code " + result[ERROR_CODE] + "."); result[NATIVE_HANDLE] = NULL_NATIVE_HANDLE; @@ -550,7 +550,7 @@ "Could not open windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + + Long.toHexString(rootNativeHandle()) + ": Access denied"); } } @@ -573,12 +573,12 @@ * @see #openKey(byte[],int) * @see #closeKey(int) */ - private int openKey(int nativeHandle, byte[] windowsRelativePath, - int mask1, int mask2) { + private long openKey(long nativeHandle, byte[] windowsRelativePath, + int mask1, int mask2) { /* If the path is short enough open at once. Otherwise split the path */ if (windowsRelativePath.length <= MAX_WINDOWS_PATH_LENGTH + 1 ) { - int[] result = WindowsRegOpenKey1(nativeHandle, - windowsRelativePath, mask1); + long[] result = WindowsRegOpenKey1(nativeHandle, + windowsRelativePath, mask1); if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1) result = WindowsRegOpenKey1(nativeHandle, windowsRelativePath, mask2); @@ -586,7 +586,7 @@ if (result[ERROR_CODE] != ERROR_SUCCESS) { logger().warning("Could not open windows registry node " + byteArrayToString(windowsAbsolutePath()) + - " at root 0x" + Integer.toHexString(nativeHandle) + + " at root 0x" + Long.toHexString(nativeHandle) + ". Windows RegOpenKey(...) returned error code " + result[ERROR_CODE] + "."); result[NATIVE_HANDLE] = NULL_NATIVE_HANDLE; @@ -610,13 +610,13 @@ separatorPosition - 1]; System.arraycopy(windowsRelativePath, separatorPosition+1, nextRelativePath, 0, nextRelativePath.length); - int nextNativeHandle = openKey(nativeHandle, nextRelativeRoot, + long nextNativeHandle = openKey(nativeHandle, nextRelativeRoot, mask1, mask2); if (nextNativeHandle == NULL_NATIVE_HANDLE) { return NULL_NATIVE_HANDLE; } - int result = openKey(nextNativeHandle, nextRelativePath, - mask1,mask2); + long result = openKey(nextNativeHandle, nextRelativePath, + mask1,mask2); closeKey(nextNativeHandle); return result; } @@ -630,13 +630,13 @@ * @see #openKey(byte[],int) * @see #openKey(int, byte[],int) */ - private void closeKey(int nativeHandle) { + private void closeKey(long nativeHandle) { int result = WindowsRegCloseKey(nativeHandle); if (result != ERROR_SUCCESS) { logger().warning("Could not close windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + + Long.toHexString(rootNativeHandle()) + ". Windows RegCloseKey(...) returned error code " + result + "."); } @@ -649,7 +649,7 @@ * @see #getSpi(String) */ protected void putSpi(String javaName, String value) { - int nativeHandle = openKey(KEY_SET_VALUE); + long nativeHandle = openKey(KEY_SET_VALUE); if (nativeHandle == NULL_NATIVE_HANDLE) { isBackingStoreAvailable = false; return; @@ -662,7 +662,7 @@ " at Windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + + Long.toHexString(rootNativeHandle()) + ". Windows RegSetValueEx(...) returned error code " + result + "."); isBackingStoreAvailable = false; @@ -677,7 +677,7 @@ * @see #putSpi(String, String) */ protected String getSpi(String javaName) { - int nativeHandle = openKey(KEY_QUERY_VALUE); + long nativeHandle = openKey(KEY_QUERY_VALUE); if (nativeHandle == NULL_NATIVE_HANDLE) { return null; } @@ -699,7 +699,7 @@ * been deleted. */ protected void removeSpi(String key) { - int nativeHandle = openKey(KEY_SET_VALUE); + long nativeHandle = openKey(KEY_SET_VALUE); if (nativeHandle == NULL_NATIVE_HANDLE) { return; } @@ -709,7 +709,7 @@ logger().warning("Could not delete windows registry value " + byteArrayToString(windowsAbsolutePath()) + "\\" + toWindowsName(key) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + + Long.toHexString(rootNativeHandle()) + ". Windows RegDeleteValue(...) returned error code " + result + "."); isBackingStoreAvailable = false; @@ -725,27 +725,27 @@ */ protected String[] keysSpi() throws BackingStoreException{ // Find out the number of values - int nativeHandle = openKey(KEY_QUERY_VALUE); + long nativeHandle = openKey(KEY_QUERY_VALUE); if (nativeHandle == NULL_NATIVE_HANDLE) { throw new BackingStoreException( "Could not open windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + "."); + Long.toHexString(rootNativeHandle()) + "."); } - int[] result = WindowsRegQueryInfoKey1(nativeHandle); + long[] result = WindowsRegQueryInfoKey1(nativeHandle); if (result[ERROR_CODE] != ERROR_SUCCESS) { String info = "Could not query windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + + Long.toHexString(rootNativeHandle()) + ". Windows RegQueryInfoKeyEx(...) returned error code " + result[ERROR_CODE] + "."; logger().warning(info); throw new BackingStoreException(info); } - int maxValueNameLength = result[MAX_VALUE_NAME_LENGTH]; - int valuesNumber = result[VALUES_NUMBER]; + int maxValueNameLength = (int)result[MAX_VALUE_NAME_LENGTH]; + int valuesNumber = (int)result[VALUES_NUMBER]; if (valuesNumber == 0) { closeKey(nativeHandle); return new String[0]; @@ -759,7 +759,7 @@ String info = "Could not enumerate value #" + i + " of windows node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + "."; + Long.toHexString(rootNativeHandle()) + "."; logger().warning(info); throw new BackingStoreException(info); } @@ -777,27 +777,27 @@ */ protected String[] childrenNamesSpi() throws BackingStoreException { // Open key - int nativeHandle = openKey(KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE); + long nativeHandle = openKey(KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE); if (nativeHandle == NULL_NATIVE_HANDLE) { throw new BackingStoreException( "Could not open windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + "."); + Long.toHexString(rootNativeHandle()) + "."); } // Get number of children - int[] result = WindowsRegQueryInfoKey1(nativeHandle); + long[] result = WindowsRegQueryInfoKey1(nativeHandle); if (result[ERROR_CODE] != ERROR_SUCCESS) { String info = "Could not query windows registry node " + byteArrayToString(windowsAbsolutePath()) + - " at root 0x" + Integer.toHexString(rootNativeHandle()) + + " at root 0x" + Long.toHexString(rootNativeHandle()) + ". Windows RegQueryInfoKeyEx(...) returned error code " + result[ERROR_CODE] + "."; logger().warning(info); throw new BackingStoreException(info); } - int maxKeyLength = result[MAX_KEY_LENGTH]; - int subKeysNumber = result[SUBKEYS_NUMBER]; + int maxKeyLength = (int)result[MAX_KEY_LENGTH]; + int subKeysNumber = (int)result[SUBKEYS_NUMBER]; if (subKeysNumber == 0) { closeKey(nativeHandle); return new String[0]; @@ -812,7 +812,7 @@ String info = "Could not enumerate key #" + i + " of windows node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + ". "; + Long.toHexString(rootNativeHandle()) + ". "; logger().warning(info); throw new BackingStoreException(info); } @@ -839,20 +839,20 @@ throw new BackingStoreException( "flush(): Backing store not available."); } - int nativeHandle = openKey(KEY_READ); + long nativeHandle = openKey(KEY_READ); if (nativeHandle == NULL_NATIVE_HANDLE) { throw new BackingStoreException( "Could not open windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + "."); + Long.toHexString(rootNativeHandle()) + "."); } int result = WindowsRegFlushKey1(nativeHandle); if (result != ERROR_SUCCESS) { String info = "Could not flush windows registry node " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + + Long.toHexString(rootNativeHandle()) + ". Windows RegFlushKey(...) returned error code " + result + "."; logger().warning(info); @@ -891,21 +891,21 @@ * is not available. */ public void removeNodeSpi() throws BackingStoreException { - int parentNativeHandle = + long parentNativeHandle = ((WindowsPreferences)parent()).openKey(DELETE); if (parentNativeHandle == NULL_NATIVE_HANDLE) { throw new BackingStoreException( "Could not open parent windows registry node of " + byteArrayToString(windowsAbsolutePath()) + " at root 0x" + - Integer.toHexString(rootNativeHandle()) + "."); + Long.toHexString(rootNativeHandle()) + "."); } int result = WindowsRegDeleteKey(parentNativeHandle, toWindowsName(name())); if (result != ERROR_SUCCESS) { String info = "Could not delete windows registry node " + byteArrayToString(windowsAbsolutePath()) + - " at root 0x" + Integer.toHexString(rootNativeHandle()) + + " at root 0x" + Long.toHexString(rootNativeHandle()) + ". Windows RegDeleteKeyEx(...) returned error code " + result + "."; logger().warning(info); @@ -1089,7 +1089,7 @@ if ((ch < 0x0020) || (ch > 0x007f)){ // write \udddd windowsName.append("/u"); - String hex = Integer.toHexString(javaName.charAt(i)); + String hex = Long.toHexString(javaName.charAt(i)); StringBuilder hex4 = new StringBuilder(hex); hex4.reverse(); int len = 4 - hex4.length(); @@ -1115,7 +1115,7 @@ /** * Returns native handle for the top Windows node for this node. */ - private int rootNativeHandle() { + private long rootNativeHandle() { return (isUserNode() ? USER_ROOT_NATIVE_HANDLE : SYSTEM_ROOT_NATIVE_HANDLE);
--- a/src/java.prefs/windows/native/libprefs/WindowsPreferences.c Thu Mar 08 14:31:54 2018 +0530 +++ b/src/java.prefs/windows/native/libprefs/WindowsPreferences.c Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2018, 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 @@ -37,222 +37,222 @@ */ DEF_STATIC_JNI_OnLoad - JNIEXPORT jintArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegOpenKey - (JNIEnv* env, jclass this_class, jint hKey, jbyteArray lpSubKey, jint securityMask) { - HKEY handle; - char* str; - int tmp[2]; - int errorCode=-1; - jintArray result; - str = (*env)->GetByteArrayElements(env, lpSubKey, NULL); - CHECK_NULL_RETURN(str, NULL); - errorCode = RegOpenKeyEx((HKEY)hKey, str, 0, securityMask, &handle); - (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0); - tmp[0]= (int) handle; - tmp[1]= errorCode; - result = (*env)->NewIntArray(env,2); - if (result != NULL) { - (*env)->SetIntArrayRegion(env, result, 0, 2, tmp); - } - return result; +JNIEXPORT jlongArray JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegOpenKey(JNIEnv* env, + jclass this_class, jlong hKey, jbyteArray lpSubKey, jint securityMask) { + char* str = (*env)->GetByteArrayElements(env, lpSubKey, NULL); + CHECK_NULL_RETURN(str, NULL); + + HKEY handle; + int errorCode = RegOpenKeyEx((HKEY) hKey, str, 0, securityMask, &handle); + (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0); + + jlong tmp[2]; + tmp[0] = (jlong) handle; + tmp[1] = errorCode; + jlongArray result = (*env)->NewLongArray(env, 2); + if (result != NULL) { + (*env)->SetLongArrayRegion(env, result, 0, 2, tmp); + } + return result; +} + +JNIEXPORT jint JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegCloseKey(JNIEnv* env, + jclass this_class, jlong hKey) { + return (jint) RegCloseKey((HKEY) hKey); +}; + +JNIEXPORT jlongArray JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegCreateKeyEx(JNIEnv* env, + jclass this_class, jlong hKey, jbyteArray lpSubKey) { + char* str = (*env)->GetByteArrayElements(env, lpSubKey, NULL); + CHECK_NULL_RETURN(str, NULL); + + HKEY handle; + DWORD lpdwDisposition; + int errorCode = RegCreateKeyEx((HKEY) hKey, str, 0, NULL, + REG_OPTION_NON_VOLATILE, KEY_READ, + NULL, &handle, &lpdwDisposition); + (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0); + + jlong tmp[3]; + tmp[0] = (jlong) handle; + tmp[1] = errorCode; + tmp[2] = lpdwDisposition; + jlongArray result = (*env)->NewLongArray(env, 3); + if (result != NULL) { + (*env)->SetLongArrayRegion(env, result, 0, 3, tmp); + } + return result; +} + +JNIEXPORT jint JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteKey(JNIEnv* env, + jclass this_class, jlong hKey, jbyteArray lpSubKey) { + char* str = (*env)->GetByteArrayElements(env, lpSubKey, NULL); + CHECK_NULL_RETURN(str, -1); + + int result = RegDeleteKey((HKEY) hKey, str); + (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0); + return result; + +}; + +JNIEXPORT jint JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegFlushKey(JNIEnv* env, + jclass this_class, jlong hKey) { + return RegFlushKey((HKEY) hKey); +} + +JNIEXPORT jbyteArray JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegQueryValueEx(JNIEnv* env, + jclass this_class, jlong hKey, jbyteArray valueName) { + char* valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL); + CHECK_NULL_RETURN(valueNameStr, NULL); + + DWORD valueType; + DWORD valueSize; + if (RegQueryValueEx((HKEY) hKey, valueNameStr, NULL, &valueType, NULL, + &valueSize) != ERROR_SUCCESS) { + (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); + return NULL; } - JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegCloseKey - (JNIEnv* env, jclass this_class, jint hKey) { - return (jint) RegCloseKey((HKEY) hKey); - }; - - JNIEXPORT jintArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegCreateKeyEx - (JNIEnv* env, jclass this_class, jint hKey, jbyteArray lpSubKey) { - HKEY handle; - char* str; - int tmp[3]; - DWORD lpdwDisposition; - int errorCode; - jintArray result = NULL; - str = (*env)->GetByteArrayElements(env, lpSubKey, NULL); - CHECK_NULL_RETURN(str, NULL); - errorCode = RegCreateKeyEx((HKEY)hKey, str, 0, NULL, - REG_OPTION_NON_VOLATILE, KEY_READ, - NULL, &handle, &lpdwDisposition); - (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0); - tmp[0]= (int) handle; - tmp[1]= errorCode; - tmp[2]= lpdwDisposition; - result = (*env)->NewIntArray(env,3); - if (result != NULL) { - (*env)->SetIntArrayRegion(env, result, 0, 3, tmp); - } - return result; - } - - JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteKey - (JNIEnv* env, jclass this_class, jint hKey, jbyteArray lpSubKey) { - char* str; - int result; - str = (*env)->GetByteArrayElements(env, lpSubKey, NULL); - CHECK_NULL_RETURN(str, -1); - result = RegDeleteKey((HKEY)hKey, str); - (*env)->ReleaseByteArrayElements(env, lpSubKey, str, 0); - return result; - - }; - - JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegFlushKey - (JNIEnv* env, jclass this_class, jint hKey) { - return RegFlushKey ((HKEY)hKey); - } - - JNIEXPORT jbyteArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegQueryValueEx - (JNIEnv* env, jclass this_class, jint hKey, jbyteArray valueName) { - char* valueNameStr; - char* buffer; - jbyteArray result; - DWORD valueType; - DWORD valueSize; - valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL); - CHECK_NULL_RETURN(valueNameStr, NULL); - if (RegQueryValueEx((HKEY)hKey, valueNameStr, NULL, &valueType, NULL, - &valueSize) != ERROR_SUCCESS) { - (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); - return NULL; - } - - buffer = (char*)malloc(valueSize); - if (buffer != NULL) { - if (RegQueryValueEx((HKEY)hKey, valueNameStr, NULL, &valueType, buffer, - &valueSize) != ERROR_SUCCESS) { - free(buffer); - (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); - return NULL; - } - } else { - JNU_ThrowOutOfMemoryError(env, "native memory allocation failed"); + char* buffer = (char*) malloc(valueSize); + if (buffer != NULL) { + if (RegQueryValueEx((HKEY) hKey, valueNameStr, NULL, &valueType, buffer, + &valueSize) != ERROR_SUCCESS) { + free(buffer); (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); return NULL; } - - if (valueType == REG_SZ) { - result = (*env)->NewByteArray(env, valueSize); - if (result != NULL) { - (*env)->SetByteArrayRegion(env, result, 0, valueSize, buffer); - } - } else { - result = NULL; - } - free(buffer); + } else { + JNU_ThrowOutOfMemoryError(env, "native memory allocation failed"); (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); - return result; + return NULL; } + jbyteArray result; + if (valueType == REG_SZ) { + result = (*env)->NewByteArray(env, valueSize); + if (result != NULL) { + (*env)->SetByteArrayRegion(env, result, 0, valueSize, buffer); + } + } else { + result = NULL; + } + free(buffer); + (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); + return result; +} +JNIEXPORT jint JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegSetValueEx(JNIEnv* env, + jclass this_class, jlong hKey, jbyteArray valueName, jbyteArray data) { + if ((valueName == NULL) || (data == NULL)) { + return -1; + } + int size = (*env)->GetArrayLength(env, data); + char* dataStr = (*env)->GetByteArrayElements(env, data, NULL); + CHECK_NULL_RETURN(dataStr, -1); + char* valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL); + int error_code = -1; + if (valueNameStr != NULL) { + error_code = RegSetValueEx((HKEY) hKey, valueNameStr, 0, + REG_SZ, dataStr, size); + (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); + } + (*env)->ReleaseByteArrayElements(env, data, dataStr, 0); + return error_code; +} - JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegSetValueEx - (JNIEnv* env, jclass this_class, jint hKey, jbyteArray valueName, jbyteArray data) { - char* valueNameStr; - char* dataStr; - int size = -1; - int nameSize = -1; - int error_code = -1; - if ((valueName == NULL)||(data == NULL)) {return -1;} - size = (*env)->GetArrayLength(env, data); - dataStr = (*env)->GetByteArrayElements(env, data, NULL); - CHECK_NULL_RETURN(dataStr, -1); - valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL); - if (valueNameStr != NULL) { - error_code = RegSetValueEx((HKEY)hKey, valueNameStr, 0, - REG_SZ, dataStr, size); - (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); - } - (*env)->ReleaseByteArrayElements(env, data, dataStr, 0); - return error_code; +JNIEXPORT jint JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteValue(JNIEnv* env, + jclass this_class, jlong hKey, jbyteArray valueName) { + if (valueName == NULL) { + return -1; + } + char* valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL); + CHECK_NULL_RETURN(valueNameStr, -1); + + int error_code = RegDeleteValue((HKEY) hKey, valueNameStr); + (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); + return error_code; +} + +JNIEXPORT jlongArray JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegQueryInfoKey(JNIEnv* env, + jclass this_class, jlong hKey) { + int subKeysNumber; + int maxSubKeyLength; + int valuesNumber; + int maxValueNameLength; + int errorCode = RegQueryInfoKey((HKEY) hKey, NULL, NULL, NULL, + &subKeysNumber, &maxSubKeyLength, NULL, + &valuesNumber, &maxValueNameLength, + NULL, NULL, NULL); + + jlong tmp[5]; + tmp[0] = subKeysNumber; + tmp[1] = errorCode; + tmp[2] = valuesNumber; + tmp[3] = maxSubKeyLength; + tmp[4] = maxValueNameLength; + jintArray result = (*env)->NewLongArray(env, 5); + if (result != NULL) { + (*env)->SetLongArrayRegion(env, result, 0, 5, tmp); + } + return result; +} + +JNIEXPORT jbyteArray JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegEnumKeyEx(JNIEnv* env, + jclass this_class, jlong hKey, jint subKeyIndex, jint maxKeyLength) { + int size = maxKeyLength; + char* buffer = (char*) malloc(maxKeyLength); + if (buffer == NULL) { + JNU_ThrowOutOfMemoryError(env, "native memory allocation failed"); + return NULL; + } + if (RegEnumKeyEx((HKEY) hKey, subKeyIndex, buffer, &size, NULL, NULL, + NULL, NULL) != ERROR_SUCCESS) { + free(buffer); + return NULL; } - JNIEXPORT jint JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegDeleteValue - (JNIEnv* env, jclass this_class, jint hKey, jbyteArray valueName) { - char* valueNameStr; - int error_code = -1; - if (valueName == NULL) {return -1;} - valueNameStr = (*env)->GetByteArrayElements(env, valueName, NULL); - CHECK_NULL_RETURN(valueNameStr, -1); - error_code = RegDeleteValue((HKEY)hKey, valueNameStr); - (*env)->ReleaseByteArrayElements(env, valueName, valueNameStr, 0); - return error_code; - } + jbyteArray result = (*env)->NewByteArray(env, size + 1); + if (result != NULL) { + (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer); + } + free(buffer); + return result; +} - JNIEXPORT jintArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegQueryInfoKey - (JNIEnv* env, jclass this_class, jint hKey) { - jintArray result = NULL; - int tmp[5]; - int valuesNumber = -1; - int maxValueNameLength = -1; - int maxSubKeyLength = -1; - int subKeysNumber = -1; - int errorCode = -1; - errorCode = RegQueryInfoKey((HKEY)hKey, NULL, NULL, NULL, - &subKeysNumber, &maxSubKeyLength, NULL, - &valuesNumber, &maxValueNameLength, - NULL, NULL, NULL); - tmp[0]= subKeysNumber; - tmp[1]= (int)errorCode; - tmp[2]= valuesNumber; - tmp[3]= maxSubKeyLength; - tmp[4]= maxValueNameLength; - result = (*env)->NewIntArray(env,5); - if (result != NULL) { - (*env)->SetIntArrayRegion(env, result, 0, 5, tmp); - } - return result; +JNIEXPORT jbyteArray JNICALL +Java_java_util_prefs_WindowsPreferences_WindowsRegEnumValue(JNIEnv* env, + jclass this_class, jlong hKey, jint valueIndex, jint maxValueNameLength) { + int size = maxValueNameLength; + char* buffer = (char*) malloc(maxValueNameLength); + if (buffer == NULL) { + JNU_ThrowOutOfMemoryError(env, "native memory allocation failed"); + return NULL; } - JNIEXPORT jbyteArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegEnumKeyEx - (JNIEnv* env, jclass this_class, jint hKey , jint subKeyIndex, jint maxKeyLength) { - int size = maxKeyLength; - jbyteArray result; - char* buffer = NULL; - buffer = (char*)malloc(maxKeyLength); - if (buffer == NULL) { - JNU_ThrowOutOfMemoryError(env, "native memory allocation failed"); - return NULL; - } - if (RegEnumKeyEx((HKEY) hKey, subKeyIndex, buffer, &size, NULL, NULL, - NULL, NULL) != ERROR_SUCCESS){ + int error_code = RegEnumValue((HKEY) hKey, valueIndex, buffer, + &size, NULL, NULL, NULL, NULL); + if (error_code != ERROR_SUCCESS) { free(buffer); return NULL; - } - result = (*env)->NewByteArray(env, size + 1); - if (result != NULL) { - (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer); - } - free(buffer); - return result; - } - - JNIEXPORT jbyteArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegEnumValue - (JNIEnv* env, jclass this_class, jint hKey , jint valueIndex, jint maxValueNameLength){ - int size = maxValueNameLength; - jbyteArray result; - char* buffer = NULL; - int error_code; - buffer = (char*)malloc(maxValueNameLength); - if (buffer == NULL) { - JNU_ThrowOutOfMemoryError(env, "native memory allocation failed"); - return NULL; - } - error_code = RegEnumValue((HKEY) hKey, valueIndex, buffer, - &size, NULL, NULL, NULL, NULL); - if (error_code!= ERROR_SUCCESS){ - free(buffer); - return NULL; - } - result = (*env)->NewByteArray(env, size + 1); - if (result != NULL) { - (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer); - } - free(buffer); - return result; - } + } + jbyteArray result = (*env)->NewByteArray(env, size + 1); + if (result != NULL) { + (*env)->SetByteArrayRegion(env, result, 0, size + 1, buffer); + } + free(buffer); + return result; +} #ifdef __cplusplus
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java Thu Mar 08 10:18:28 2018 -0800 @@ -1696,6 +1696,11 @@ if (lambdaClassifier.diagFragment != null) { log.error(DiagnosticFlag.SYNTAX, pos, Errors.InvalidLambdaParameterDeclaration(lambdaClassifier.diagFragment)); } + for (JCVariableDecl param: params) { + if (param.vartype != null && isRestrictedLocalVarTypeName(param.vartype)) { + param.vartype = null; + } + } } return lambdaExpressionOrStatementRest(params, pos); }
--- a/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp Thu Mar 08 14:31:54 2018 +0530 +++ b/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2018, 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 @@ -92,7 +92,7 @@ * Overloaded 'operator new[]' variant, which will raise Java's * OutOfMemoryError in the case of a failure. */ -static void* operator new[](std::size_t size, JNIEnv *env) +void* operator new[](std::size_t size, JNIEnv *env) { void* buf = ::operator new[](size, std::nothrow); if (buf == NULL) { @@ -1356,212 +1356,6 @@ } } - - - -/* - * Class: sun_security_mscapi_RSACipher - * Method: findCertificateUsingAlias - * Signature: (Ljava/lang/String;Ljava/lang/String;)J - */ -JNIEXPORT jlong JNICALL Java_sun_security_mscapi_RSACipher_findCertificateUsingAlias - (JNIEnv *env, jobject obj, jstring jCertStoreName, jstring jCertAliasName) -{ - const char* pszCertStoreName = NULL; - const char* pszCertAliasName = NULL; - HCERTSTORE hCertStore = NULL; - PCCERT_CONTEXT pCertContext = NULL; - char* pszNameString = NULL; // certificate's friendly name - DWORD cchNameString = 0; - - __try - { - if ((pszCertStoreName = env->GetStringUTFChars(jCertStoreName, NULL)) - == NULL) { - __leave; - } - if ((pszCertAliasName = env->GetStringUTFChars(jCertAliasName, NULL)) - == NULL) { - __leave; - } - - // Open a system certificate store. - if ((hCertStore = ::CertOpenSystemStore(NULL, pszCertStoreName)) == NULL) { - ThrowException(env, KEYSTORE_EXCEPTION, GetLastError()); - __leave; - } - - // Use CertEnumCertificatesInStore to get the certificates - // from the open store. pCertContext must be reset to - // NULL to retrieve the first certificate in the store. - while (pCertContext = ::CertEnumCertificatesInStore(hCertStore, pCertContext)) - { - if ((cchNameString = ::CertGetNameString(pCertContext, - CERT_NAME_FRIENDLY_DISPLAY_TYPE, 0, NULL, NULL, 0)) == 1) { - - continue; // not found - } - - pszNameString = new (env) char[cchNameString]; - if (pszNameString == NULL) { - __leave; - } - - if (::CertGetNameString(pCertContext, - CERT_NAME_FRIENDLY_DISPLAY_TYPE, 0, NULL, pszNameString, - cchNameString) == 1) { - - continue; // not found - } - - // Compare the certificate's friendly name with supplied alias name - if (strcmp(pszCertAliasName, pszNameString) == 0) { - delete [] pszNameString; - break; - - } else { - delete [] pszNameString; - } - } - } - __finally - { - if (hCertStore) - ::CertCloseStore(hCertStore, 0); - - if (pszCertStoreName) - env->ReleaseStringUTFChars(jCertStoreName, pszCertStoreName); - - if (pszCertAliasName) - env->ReleaseStringUTFChars(jCertAliasName, pszCertAliasName); - } - - return (jlong) pCertContext; -} - -/* - * Class: sun_security_mscapi_RSACipher - * Method: getKeyFromCert - * Signature: (JZ)J - */ -JNIEXPORT jlong JNICALL Java_sun_security_mscapi_RSACipher_getKeyFromCert - (JNIEnv *env, jobject obj, jlong pCertContext, jboolean usePrivateKey) -{ - HCRYPTPROV hCryptProv = NULL; - HCRYPTKEY hKey = NULL; - DWORD dwKeySpec; - BOOL bCallerFreeProv = FALSE; - BOOL bRes; - - __try - { - if (usePrivateKey == JNI_TRUE) { - // Locate the key container for the certificate's private key - - // First, probe it silently - bRes = ::CryptAcquireCertificatePrivateKey( - (PCCERT_CONTEXT) pCertContext, CRYPT_ACQUIRE_SILENT_FLAG, - NULL, &hCryptProv, &dwKeySpec, &bCallerFreeProv); - - if (bRes == FALSE && GetLastError() != NTE_SILENT_CONTEXT) - { - ThrowException(env, KEYSTORE_EXCEPTION, GetLastError()); - __leave; - } - - if (bCallerFreeProv == TRUE) { - ::CryptReleaseContext(hCryptProv, NULL); - bCallerFreeProv = FALSE; - } - - // Now, do it normally (not silently) - if (::CryptAcquireCertificatePrivateKey( - (PCCERT_CONTEXT) pCertContext, 0, NULL, &hCryptProv, - &dwKeySpec, &bCallerFreeProv) == FALSE) - { - ThrowException(env, KEYSTORE_EXCEPTION, GetLastError()); - __leave; - } - - // Get a handle to the private key - if (::CryptGetUserKey(hCryptProv, dwKeySpec, &hKey) == FALSE) { - ThrowException(env, KEY_EXCEPTION, GetLastError()); - __leave; - } - } - else // use public key - { - bCallerFreeProv = TRUE; - - // Acquire a CSP context. - if (::CryptAcquireContext(&hCryptProv, "J2SE", NULL, - PROV_RSA_FULL, 0) == FALSE) - { - // If CSP context hasn't been created, create one. - // - if (::CryptAcquireContext(&hCryptProv, "J2SE", NULL, - PROV_RSA_FULL, CRYPT_NEWKEYSET) == FALSE) - { - ThrowException(env, KEYSTORE_EXCEPTION, GetLastError()); - __leave; - } - } - - // Import the certificate's public key into the key container - if (::CryptImportPublicKeyInfo(hCryptProv, X509_ASN_ENCODING, - &(((PCCERT_CONTEXT) pCertContext)->pCertInfo->SubjectPublicKeyInfo), - &hKey) == FALSE) - { - ThrowException(env, KEY_EXCEPTION, GetLastError()); - __leave; - } - } - } - __finally - { - //-------------------------------------------------------------------- - // Clean up. - - if (bCallerFreeProv == TRUE && hCryptProv != NULL) - ::CryptReleaseContext(hCryptProv, 0); - } - - return hKey; // TODO - when finished with this key, call - // CryptDestroyKey(hKey) -} - -/* - * Class: sun_security_mscapi_KeyStore - * Method: getKeyLength - * Signature: (J)I - */ -JNIEXPORT jint JNICALL Java_sun_security_mscapi_KeyStore_getKeyLength - (JNIEnv *env, jobject obj, jlong hKey) -{ - DWORD dwDataLen = sizeof(DWORD); - BYTE pbData[sizeof(DWORD)]; - DWORD length = 0; - - __try - { - // Get key length (in bits) - //TODO - may need to use KP_BLOCKLEN instead? - if (!(::CryptGetKeyParam((HCRYPTKEY) hKey, KP_KEYLEN, (BYTE *)pbData, &dwDataLen, - 0))) { - - ThrowException(env, KEY_EXCEPTION, GetLastError()); - __leave; - } - length = (DWORD) pbData; - } - __finally - { - // no cleanup required - } - - return (jint) length; -} - /* * Class: sun_security_mscapi_RSACipher * Method: encryptDecrypt @@ -1804,38 +1598,47 @@ * Convert an array in big-endian byte order into little-endian byte order. */ int convertToLittleEndian(JNIEnv *env, jbyteArray source, jbyte* destination, - int destinationLength) { + int destinationLength) { - int sourceLength = env->GetArrayLength(source); + int result = -1; + jbyte* sourceBytes = NULL; - jbyte* sourceBytes = env->GetByteArrayElements(source, 0); - if (sourceBytes == NULL) { - return -1; - } + __try { + int sourceLength = env->GetArrayLength(source); - int copyLen = sourceLength; - if (sourceLength > destinationLength) { - // source might include an extra sign byte - if (sourceLength == destinationLength + 1 && sourceBytes[0] == 0) { - copyLen--; - } else { - return -1; + sourceBytes = env->GetByteArrayElements(source, 0); + if (sourceBytes == NULL) { + __leave; + } + + int copyLen = sourceLength; + if (sourceLength > destinationLength) { + // source might include an extra sign byte + if (sourceLength == destinationLength + 1 && sourceBytes[0] == 0) { + copyLen--; + } else { + __leave; + } + } + + // Copy bytes from the end of the source array to the beginning of the + // destination array (until the destination array is full). + // This ensures that the sign byte from the source array will be excluded. + for (int i = 0; i < copyLen; i++) { + destination[i] = sourceBytes[sourceLength - 1 - i]; + } + if (copyLen < destinationLength) { + memset(destination + copyLen, 0, destinationLength - copyLen); + } + result = destinationLength; + } __finally { + // Clean up. + if (sourceBytes) { + env->ReleaseByteArrayElements(source, sourceBytes, JNI_ABORT); } } - // Copy bytes from the end of the source array to the beginning of the - // destination array (until the destination array is full). - // This ensures that the sign byte from the source array will be excluded. - for (int i = 0; i < copyLen; i++) { - destination[i] = sourceBytes[sourceLength - 1 - i]; - } - if (copyLen < destinationLength) { - memset(destination + copyLen, 0, destinationLength - copyLen); - } - - env->ReleaseByteArrayElements(source, sourceBytes, JNI_ABORT); - - return destinationLength; + return result; } /*
--- a/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java Thu Mar 08 10:18:28 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2018, 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 @@ -395,7 +395,6 @@ } else { try { if (key.isReadable()) { - boolean closed; SocketChannel chan = (SocketChannel)key.channel(); HttpConnection conn = (HttpConnection)key.attachment(); @@ -437,7 +436,6 @@ } public void handle (SocketChannel chan, HttpConnection conn) - throws IOException { try { Exchange t = new Exchange (chan, protocol, conn); @@ -448,6 +446,9 @@ } catch (IOException e) { logger.log (Level.TRACE, "Dispatcher (5)", e); closeConnection(conn); + } catch (Throwable e) { + logger.log (Level.TRACE, "Dispatcher (6)", e); + closeConnection(conn); } } }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java Thu Mar 08 14:31:54 2018 +0530 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java Thu Mar 08 10:18:28 2018 -0800 @@ -307,8 +307,7 @@ } if (htmlVersion == null) { - reporter.print(WARNING, getText("doclet.HTML_version_not_specified", helpfile)); - htmlVersion = HtmlVersion.HTML4; + htmlVersion = HtmlVersion.HTML5; } // check if helpfile exists @@ -658,6 +657,7 @@ new Option(resources, "-html4") { @Override public boolean process(String opt, List<String> args) { + reporter.print(WARNING, getText("doclet.HTML_4_specified", helpfile)); htmlVersion = HtmlVersion.HTML4; return true; }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties Thu Mar 08 14:31:54 2018 +0530 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties Thu Mar 08 10:18:28 2018 -0800 @@ -445,9 +445,8 @@ disable checks for the specified packages. # L10N: do not localize the option names -html4 and