[
https://issues.apache.org/jira/browse/HADOOP-7824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14635814#comment-14635814
]
Colin Patrick McCabe commented on HADOOP-7824:
----------------------------------------------
Thanks for posting this, [~martinw]. It looks like a big improvement.
Rather than having stuff like this:
{code}
64 typedef enum {
65 CT_BOOL = 1,
66 CT_INT,
67 CT_LONG,
68 } const_type;
69
70 struct field {
71 char *name;
72 const_type type;
73 union {
74 jboolean bool_val;
75 jint int_val;
76 jlong long_val;
77 } value;
78 };
{code}
Why not just have three functions:
{code}
jthrowable setIntConstant(const char *name, jint val);
jthrowable setLongConstant(const char *name, jlong val);
jthrowable setBooleanConstant(const char *name, jboolean val);
{code}
Then you could have:
{code}
jthr = setIntConstant("O_RDONLY", O_RDONLY);
if (jthr != null) {
return;
}
jthr = setBooleanConstant("fadvisePossible", HAVE_POSIX_FADVISE);
if (jthr != null) {
return;
}
...
{code}
This would be a lot simpler than coming up with all those structures.
> Native IO uses wrong constants almost everywhere
> ------------------------------------------------
>
> Key: HADOOP-7824
> URL: https://issues.apache.org/jira/browse/HADOOP-7824
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: native
> Affects Versions: 0.20.204.0, 0.20.205.0, 1.0.3, 0.23.0, 2.0.0-alpha, 3.0.0
> Environment: Mac OS X, Linux, Solaris, Windows, ...
> Reporter: Dmytro Shteflyuk
> Assignee: Martin Walsh
> Labels: hadoop
> Attachments: HADOOP-7824.001.patch, HADOOP-7824.patch,
> HADOOP-7824.patch, hadoop-7824.txt
>
>
> Constants like O_CREAT, O_EXCL, etc. have different values on OS X and many
> other operating systems.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)