Set explicit type conversion for Ruby

* RbConfig::CONFIG["CFLAGS"] includes -Wshorten-64-to-32
* This will cause compiler errors

Conflicts:
        clownfish/compiler/src/CFCPerlPod.c


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/b9f1b6d2
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/b9f1b6d2
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/b9f1b6d2

Branch: refs/heads/master
Commit: b9f1b6d2857493f762899ca0f1536f5788b42c45
Parents: b7548c4
Author: Logan Bell <[email protected]>
Authored: Sat Feb 9 14:39:11 2013 -0800
Committer: Logan Bell <[email protected]>
Committed: Sat Feb 9 15:46:45 2013 -0800

----------------------------------------------------------------------
 clownfish/compiler/src/CFCParseHeader.y |    2 +-
 clownfish/compiler/src/CFCPerlMethod.c  |    6 +++---
 clownfish/compiler/src/CFCPerlPod.c     |    8 ++++----
 clownfish/compiler/src/CFCPerlSub.c     |    4 ++--
 4 files changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/b9f1b6d2/clownfish/compiler/src/CFCParseHeader.y
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCParseHeader.y 
b/clownfish/compiler/src/CFCParseHeader.y
index ab72de5..a86a3c4 100644
--- a/clownfish/compiler/src/CFCParseHeader.y
+++ b/clownfish/compiler/src/CFCParseHeader.y
@@ -128,7 +128,7 @@ S_new_type(CFCParser *state, int flags, char *type_name,
     (void)state; /* unused */
     CFCType *type = NULL;
     size_t type_name_len = strlen(type_name);
-    int indirection = asterisk_postfix ? strlen(asterisk_postfix) : 0;
+    int indirection = asterisk_postfix ? (int)strlen(asterisk_postfix) : 0;
 
     /* Apply "nullable" to outermost pointer, but "const", etc to innermost
      * type. This is an ugly kludge and the Clownfish header language needs to

http://git-wip-us.apache.org/repos/asf/lucy/blob/b9f1b6d2/clownfish/compiler/src/CFCPerlMethod.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCPerlMethod.c 
b/clownfish/compiler/src/CFCPerlMethod.c
index c6bbc82..75082f5 100644
--- a/clownfish/compiler/src/CFCPerlMethod.c
+++ b/clownfish/compiler/src/CFCPerlMethod.c
@@ -285,7 +285,7 @@ S_xsub_def_positional_args(CFCPerlMethod *self) {
     CFCParamList *param_list = CFCMethod_get_param_list(method);
     CFCVariable **arg_vars = CFCParamList_get_variables(param_list);
     const char **arg_inits = CFCParamList_get_initial_values(param_list);
-    unsigned num_vars = CFCParamList_num_vars(param_list);
+    unsigned num_vars = (unsigned)CFCParamList_num_vars(param_list);
     char *body = S_xsub_body(self);
 
     // Determine how many args are truly required and build an error check.
@@ -461,7 +461,7 @@ S_callback_start(CFCMethod *method) {
         "    SAVETMPS;\n"
         "    PUSHMARK(SP);\n"
         "    mPUSHs((SV*)Cfish_Obj_To_Host((cfish_Obj*)self));\n";
-    int num_args = CFCParamList_num_vars(param_list) - 1;
+    int num_args = (int)CFCParamList_num_vars(param_list) - 1;
     int num_to_extend = num_args == 0 ? 1
                       : num_args == 1 ? 2
                       : 1 + (num_args * 2);
@@ -495,7 +495,7 @@ S_callback_start(CFCMethod *method) {
         }
         else if (CFCType_is_integer(type)) {
             // Convert primitive integer types to IV Perl scalars.
-            int width = CFCType_get_width(type);
+            int width = (int)CFCType_get_width(type);
             if (width != 0 && width <= 4) {
                 params = CFCUtil_cat(params, "   mPUSHi(",
                                      name, ");\n", NULL);

http://git-wip-us.apache.org/repos/asf/lucy/blob/b9f1b6d2/clownfish/compiler/src/CFCPerlPod.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCPerlPod.c 
b/clownfish/compiler/src/CFCPerlPod.c
index d7a9c7e..ffc440a 100644
--- a/clownfish/compiler/src/CFCPerlPod.c
+++ b/clownfish/compiler/src/CFCPerlPod.c
@@ -227,9 +227,9 @@ static char*
 S_global_replace(const char *string, const char *match,
                  const char *replacement) {
     char *found = (char*)string;
-    int   string_len      = strlen(string);
-    int   match_len       = strlen(match);
-    int   replacement_len = strlen(replacement);
+    int   string_len      = (int)strlen(string);
+    int   match_len       = (int)strlen(match);
+    int   replacement_len = (int)strlen(replacement);
     int   len_diff        = replacement_len - match_len;
 
     // Allocate space.
@@ -275,7 +275,7 @@ CFCPerlPod_gen_subroutine_pod(CFCPerlPod *self, CFCFunction 
*func,
     }
 
     CFCParamList *param_list = CFCFunction_get_param_list(func);
-    int num_vars = CFCParamList_num_vars(param_list);
+    int num_vars = (int)CFCParamList_num_vars(param_list);
     char *pod = CFCUtil_sprintf("=head2 %s", alias);
 
     // Get documentation, which may be inherited.

http://git-wip-us.apache.org/repos/asf/lucy/blob/b9f1b6d2/clownfish/compiler/src/CFCPerlSub.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCPerlSub.c 
b/clownfish/compiler/src/CFCPerlSub.c
index cb4a5d3..af98cde 100644
--- a/clownfish/compiler/src/CFCPerlSub.c
+++ b/clownfish/compiler/src/CFCPerlSub.c
@@ -47,7 +47,7 @@ CFCPerlSub_init(CFCPerlSub *self, CFCParamList *param_list,
     self->c_name = (char*)MALLOCATE(c_name_len);
     int j = 3;
     memcpy(self->c_name, "XS_", j);
-    for (int i = 0, max = strlen(self->perl_name); i < max; i++) {
+    for (int i = 0, max = (int)strlen(self->perl_name); i < max; i++) {
         char c = self->perl_name[i];
         if (c == ':') {
             while (self->perl_name[i + 1] == ':') { i++; }
@@ -137,7 +137,7 @@ struct allot_macro_map prim_type_to_allot_macro[] = {
 static char*
 S_allot_params_arg(CFCType *type, const char *label, int required) {
     const char *type_c_string = CFCType_to_c(type);
-    unsigned label_len = strlen(label);
+    unsigned label_len = (unsigned)strlen(label);
     const char *req_string = required ? "true" : "false";
 
     if (CFCType_is_object(type)) {

Reply via email to