<AWT Dev> RFR: 8154269: Remove unused or unnecessary Xm/Xt files and header includes

Phil Race philip.race at oracle.com
Thu Apr 14 21:17:53 UTC 2016

I think it makes sense to remove the typedef of Pixel and directly use
unsigned long since the sole reference to Pixel is in order to prepare
values to pass to XSetForeground which expects "unsigned long".

Updated webrev : http://cr.openjdk.java.net/~prr/8154269.1/

Boolean is used in about 22 places. over half in Xwindow.c
Probably all of these should all be converted to use "Bool" which
is the Xlib.h definition and indeed often it is used in
conjunction with "True" and "False" which are defined alongside Bool :
#define Bool int
#define Status int
#define True 1
#define False 0

The only potential issue is that this is "int" and Boolean was "char"
but since True and False are ints anyway ..

I also see TRUE and FALSE used which appear like they may come from
but since they are the same that is harmless.

So a follow-on bug could just delete the line
typedef char Boolean
and replace uses of Boolean with Bool.


On 04/14/2016 12:28 PM, Phil Race wrote:
> https://bugs.openjdk.java.net/browse/JDK-8154269
> http://cr.openjdk.java.net/~prr/8154269/
> https://bugs.openjdk.java.net/browse/JDK-8047931
> listed a number of X11 and medialib files that are unused in the build.
> In looking at the VDrawingArea ones it lead to realising
> we still include Intrinsic.h (an Xt header) in awt.h even though
> we do not use Xt since the Motif toolkit was removed.
> So I think we can remove the dependency on those header files.
> Doing this lead in turn to finding we have at least one unused
> field, one unused #define and one unused method declaration
> all referencing Xt types.
> So I decided to separate out the removal of Xt headers and files in to 
> this separate
> bug report and make the other bug exclusively about medialib.
> The fix adds into awt.h a couple of X11 includes that were implicit from
> previously including Intrinsic.h and I explicitly added typedefs for 
> Boolean
> and Pixel which we were referencing in our code since those came from 
> Intrinsic.h
> I could perhaps have just changed the one usage of Pixel to "unsigned 
> long"
> but Boolean was used more widely.
> JPRT has passed builds on all platforms and JDK still seems to work 
> fine on Linux ..
> One other note : awt_InputMethod.c has a number of places where it
> still mentions OSX. I didn't attempt to clean that up here as I suspect
> it would muddy the patch.
>   93 #if defined(__linux__) || defined(MACOSX)
> -phil.

More information about the awt-dev mailing list