[Mono] Fix C4018 warnings round II (#70783)
authorFan Yang <52458914+fanyang-mono@users.noreply.github.com>
Tue, 21 Jun 2022 22:07:11 +0000 (18:07 -0400)
committerGitHub <noreply@github.com>
Tue, 21 Jun 2022 22:07:11 +0000 (18:07 -0400)
* Fix C4018 warnings round II

* Changes for x86

* Fix more C4018 warnings

* Last set of files being fixed within this PR

* Address review feedback and fix a build failure

* Update upd_locator_t to be in sync with locator_t

47 files changed:
src/mono/mono/component/hot_reload.c
src/mono/mono/eglib/glib.h
src/mono/mono/metadata/assembly-load-context.c
src/mono/mono/metadata/assembly.c
src/mono/mono/metadata/class.c
src/mono/mono/metadata/custom-attrs.c
src/mono/mono/metadata/debug-helpers.c
src/mono/mono/metadata/debug-mono-ppdb.c
src/mono/mono/metadata/dynamic-image.c
src/mono/mono/metadata/dynamic-stream.c
src/mono/mono/metadata/exception.c
src/mono/mono/metadata/image-internals.h
src/mono/mono/metadata/image.c
src/mono/mono/metadata/loader.c
src/mono/mono/metadata/marshal.c
src/mono/mono/metadata/memory-manager.c
src/mono/mono/metadata/mono-basic-block.c
src/mono/mono/metadata/mono-hash.c
src/mono/mono/metadata/object-internals.h
src/mono/mono/metadata/object.c
src/mono/mono/metadata/reflection.c
src/mono/mono/metadata/sre-encode.c
src/mono/mono/metadata/threads.c
src/mono/mono/mini/abcremoval.c
src/mono/mono/mini/alias-analysis.c
src/mono/mono/mini/branch-opts.c
src/mono/mono/mini/driver.c
src/mono/mono/mini/exceptions-amd64.c
src/mono/mono/mini/graph.c
src/mono/mono/mini/helpers.c
src/mono/mono/mini/ir-emit.h
src/mono/mono/mini/linear-scan.c
src/mono/mono/mini/lldb.c
src/mono/mono/mini/mini-amd64-gsharedvt.c
src/mono/mono/mini/mini-profiler.c
src/mono/mono/mini/mini-runtime.c
src/mono/mono/mini/mini.c
src/mono/mono/mini/mini.h
src/mono/mono/mini/monovm.c
src/mono/mono/mini/seq-points.c
src/mono/mono/mini/unwind.c
src/mono/mono/profiler/aot.c
src/mono/mono/utils/lock-free-alloc.c
src/mono/mono/utils/mono-flight-recorder.c
src/mono/mono/utils/mono-poll.c
src/mono/mono/utils/monobitset.h
src/native/public/mono/metadata/details/image-functions.h

index aafca1e..bfa9f78 100644 (file)
@@ -933,8 +933,6 @@ scope_to_string (uint32_t tok)
 static void
 dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
 {
-       int rows;
-
        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "dmeta tables:");
        for (int idx = 0; idx < MONO_TABLE_NUM; ++idx) {
                if (image_dmeta->tables [idx].base)
@@ -942,8 +940,8 @@ dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
        }
        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "================================");
 
-       rows = mono_image_get_table_rows (image_base, MONO_TABLE_TYPEREF);
-       for (int i = 1; i <= rows; ++i) {
+       guint32 rows = table_info_get_rows (&image_base->tables [MONO_TABLE_TYPEREF]);
+       for (guint32 i = 1; i <= rows; ++i) {
                guint32 cols [MONO_TYPEREF_SIZE];
                mono_metadata_decode_row (&image_base->tables [MONO_TABLE_TYPEREF], i - 1, cols, MONO_TYPEREF_SIZE);
                const char *scope = scope_to_string (cols [MONO_TYPEREF_SCOPE]);
@@ -960,8 +958,8 @@ dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
        if (!image_dmeta->minimal_delta) {
                mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "--------------------------------");
 
-               rows = mono_image_get_table_rows (image_dmeta, MONO_TABLE_TYPEREF);
-               for (int i = 1; i <= rows; ++i) {
+               rows = table_info_get_rows (&image_dmeta->tables [MONO_TABLE_TYPEREF]);
+               for (guint32 i = 1; i <= rows; ++i) {
                        guint32 cols [MONO_TYPEREF_SIZE];
                        mono_metadata_decode_row (&image_dmeta->tables [MONO_TABLE_TYPEREF], i - 1, cols, MONO_TYPEREF_SIZE);
                        const char *scope = scope_to_string (cols [MONO_TYPEREF_SCOPE]);
@@ -972,8 +970,8 @@ dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
        }
        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "================================");
 
-       rows = mono_image_get_table_rows (image_dmeta, MONO_TABLE_TYPEDEF);
-       for (int i = 1; i <= rows; ++i) {
+       rows = table_info_get_rows (&image_dmeta->tables [MONO_TABLE_TYPEDEF]);
+       for (guint32 i = 1; i <= rows; ++i) {
                guint32 cols [MONO_TYPEDEF_SIZE];
                mono_metadata_decode_row (&image_dmeta->tables [MONO_TABLE_TYPEDEF], i - 1, cols, MONO_TYPEDEF_SIZE);
                const char *name = mono_metadata_string_heap (image_base, cols [MONO_TYPEDEF_NAME]);
@@ -983,8 +981,8 @@ dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
 
        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "================================");
 
-       rows = mono_image_get_table_rows (image_base, MONO_TABLE_METHOD);
-       for (int i = 1; i <= rows ; ++i) {
+       rows = table_info_get_rows (&image_base->tables [MONO_TABLE_METHOD]);
+       for (guint32 i = 1; i <= rows ; ++i) {
                guint32 cols [MONO_METHOD_SIZE];
                mono_metadata_decode_row_raw (&image_base->tables [MONO_TABLE_METHOD], i - 1, cols, MONO_METHOD_SIZE);
                const char *name = mono_metadata_string_heap (image_base, cols [MONO_METHOD_NAME]);
@@ -993,8 +991,8 @@ dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
        }
        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "--------------------------------");
 
-       rows = mono_image_get_table_rows (image_dmeta, MONO_TABLE_METHOD);
-       for (int i = 1; i <= rows ; ++i) {
+       rows = table_info_get_rows (&image_dmeta->tables [MONO_TABLE_METHOD]);
+       for (guint32 i = 1; i <= rows ; ++i) {
                guint32 cols [MONO_METHOD_SIZE];
                mono_metadata_decode_row_raw (&image_dmeta->tables [MONO_TABLE_METHOD], i - 1, cols, MONO_METHOD_SIZE);
                const char *name = mono_metadata_string_heap (image_base, cols [MONO_METHOD_NAME]);
@@ -1003,8 +1001,8 @@ dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
        }
        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "================================");
 
-       rows = mono_image_get_table_rows (image_base, MONO_TABLE_STANDALONESIG);
-       for (int i = 1; i <= rows; ++i) {
+       rows = table_info_get_rows (&image_base->tables [MONO_TABLE_STANDALONESIG]);
+       for (guint32 i = 1; i <= rows; ++i) {
                guint32 cols [MONO_STAND_ALONE_SIGNATURE_SIZE];
                mono_metadata_decode_row (&image_base->tables [MONO_TABLE_STANDALONESIG], i - 1, cols, MONO_STAND_ALONE_SIGNATURE_SIZE);
                mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "base  standalonesig i=%d (token=0x%08x) -> 0x%08x", i, MONO_TOKEN_SIGNATURE | i, cols [MONO_STAND_ALONE_SIGNATURE]);
@@ -1013,8 +1011,8 @@ dump_update_summary (MonoImage *image_base, MonoImage *image_dmeta)
        if (!image_dmeta->minimal_delta) {
                mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "--------------------------------");
 
-               rows = mono_image_get_table_rows (image_dmeta, MONO_TABLE_STANDALONESIG);
-               for (int i = 1; i <= rows; ++i) {
+               rows = table_info_get_rows (&image_dmeta->tables [MONO_TABLE_STANDALONESIG]);
+               for (guint32 i = 1; i <= rows; ++i) {
                        guint32 cols [MONO_STAND_ALONE_SIGNATURE_SIZE];
                        mono_metadata_decode_row_raw (&image_dmeta->tables [MONO_TABLE_STANDALONESIG], i - 1, cols, MONO_STAND_ALONE_SIGNATURE_SIZE);
                        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "dmeta standalonesig i=%d (token=0x%08x) -> 0x%08x", i, MONO_TOKEN_SIGNATURE | i, cols [MONO_STAND_ALONE_SIGNATURE]);
@@ -1101,11 +1099,11 @@ hot_reload_relative_delta_index (MonoImage *image_dmeta, DeltaInfo *delta_info,
 {
        MonoTableInfo *encmap = &image_dmeta->tables [MONO_TABLE_ENCMAP];
 
-       int table = mono_metadata_token_table (token);
-       int index = mono_metadata_token_index (token);
+       guint32 table = mono_metadata_token_table (token);
+       guint32 index = mono_metadata_token_index (token);
 
-       int index_map = delta_info->enc_recs [table];
-       int encmap_rows = table_info_get_rows (encmap);
+       guint32 index_map = delta_info->enc_recs [table];
+       guint32 encmap_rows = table_info_get_rows (encmap);
 
        if (!table_info_get_rows (encmap) || !image_dmeta->minimal_delta)
                return mono_metadata_token_index (token);
@@ -1118,7 +1116,7 @@ hot_reload_relative_delta_index (MonoImage *image_dmeta, DeltaInfo *delta_info,
 
        guint32 cols[MONO_ENCMAP_SIZE];
        mono_metadata_decode_row (encmap, index_map - 1, cols, MONO_ENCMAP_SIZE);
-       int map_entry = cols [MONO_ENCMAP_TOKEN];
+       guint32 map_entry = cols [MONO_ENCMAP_TOKEN];
 
        /* we're looking at the beginning of a sequence of encmap rows that are all the
         * modifications+additions for the table we are looking for (or we're looking at an entry
@@ -1134,7 +1132,7 @@ hot_reload_relative_delta_index (MonoImage *image_dmeta, DeltaInfo *delta_info,
                if (mono_metadata_token_index (map_entry) == index) {
                        /* token resolves to this generation */
                        int return_val = index_map - delta_info->enc_recs [table] + 1;
-                       g_assert (return_val > 0 && return_val <= table_info_get_rows (&image_dmeta->tables[table]));
+                       g_assert (return_val > 0 && GINT_TO_UINT32(return_val) <= table_info_get_rows (&image_dmeta->tables[table]));
                        mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "relative index for token 0x%08x -> table 0x%02x row 0x%08x", token, table, return_val);
                        return return_val;
                } else {
@@ -1192,7 +1190,8 @@ delta_info_compute_table_records (MonoImage *image_dmeta, MonoImage *image_base,
 {
        MonoTableInfo *encmap = &image_dmeta->tables [MONO_TABLE_ENCMAP];
 
-       int table, prev_table = -1, idx;
+       int table, prev_table = -1;
+       guint32 idx;
 
        /*** Compute logical table sizes ***/
        if (base_info->delta_info == base_info->delta_info_last) {
@@ -1212,7 +1211,7 @@ delta_info_compute_table_records (MonoImage *image_dmeta, MonoImage *image_base,
 
        /* TODO: while going through the tables, update delta_info->count[tbl].{modified,inserted}_rows */
 
-       int encmap_rows = table_info_get_rows (encmap);
+       guint32 encmap_rows = table_info_get_rows (encmap);
        for (idx = 1; idx <= encmap_rows; ++idx) {
                guint32 cols[MONO_ENCMAP_SIZE];
                mono_metadata_decode_row (encmap, idx - 1, cols, MONO_ENCMAP_SIZE);
@@ -1285,7 +1284,7 @@ static void
 delta_info_mutate_row (MonoImage *image_dmeta, DeltaInfo *cur_delta, guint32 log_token)
 {
        int token_table = mono_metadata_token_table (log_token);
-       int token_index = mono_metadata_token_index (log_token); /* 1-based */
+       guint32 token_index = mono_metadata_token_index (log_token); /* 1-based */
 
        gboolean modified = token_index <= cur_delta->count [token_table].prev_gen_rows;
 
@@ -1304,7 +1303,7 @@ delta_info_mutate_row (MonoImage *image_dmeta, DeltaInfo *cur_delta, guint32 log
        char *dst_base = (char*)cur_delta->mutants [token_table].base + (token_index - 1) * cur_delta->mutants [token_table].row_size;
 
        guint32 src_offset = 0, dst_offset = 0;
-       for (int col = 0; col < mono_metadata_table_count (dst_bitfield); ++col) {
+       for (guint col = 0; col < mono_metadata_table_count (dst_bitfield); ++col) {
                guint32 dst_col_size = mono_metadata_table_size (dst_bitfield, col);
                guint32 src_col_size = mono_metadata_table_size (src_bitfield, col);
                if ((m_SuppressedDeltaColumns [token_table] & (1 << col)) == 0) {
@@ -1355,9 +1354,9 @@ delta_info_mutate_row (MonoImage *image_dmeta, DeltaInfo *cur_delta, guint32 log
 static void
 prepare_mutated_rows (const MonoTableInfo *table_enclog, MonoImage *image_base, MonoImage *image_dmeta, DeltaInfo *delta_info)
 {
-       int rows = table_info_get_rows (table_enclog);
+       guint32 rows = table_info_get_rows (table_enclog);
        /* Prepare the mutated metadata tables */
-       for (int i = 0; i < rows ; ++i) {
+       for (guint32 i = 0; i < rows ; ++i) {
                guint32 cols [MONO_ENCLOG_SIZE];
                mono_metadata_decode_row (table_enclog, i, cols, MONO_ENCLOG_SIZE);
 
@@ -1378,14 +1377,14 @@ static gboolean
 apply_enclog_pass1 (MonoImage *image_base, MonoImage *image_dmeta, DeltaInfo *delta_info, gconstpointer dil_data, uint32_t dil_length, MonoError *error)
 {
        MonoTableInfo *table_enclog = &image_dmeta->tables [MONO_TABLE_ENCLOG];
-       int rows = table_info_get_rows (table_enclog);
+       guint32 rows = table_info_get_rows (table_enclog);
 
        gboolean unsupported_edits = FALSE;
 
        /* hack: make a pass over it, looking only for table method updates, in
         * order to give more meaningful error messages first */
 
-       for (int i = 0; i < rows ; ++i) {
+       for (guint32 i = 0; i < rows ; ++i) {
                guint32 cols [MONO_ENCLOG_SIZE];
                mono_metadata_decode_row (table_enclog, i, cols, MONO_ENCLOG_SIZE);
 
@@ -1398,7 +1397,7 @@ apply_enclog_pass1 (MonoImage *image_base, MonoImage *image_dmeta, DeltaInfo *de
                int func_code = cols [MONO_ENCLOG_FUNC_CODE];
 
                int token_table = mono_metadata_token_table (log_token);
-               int token_index = mono_metadata_token_index (log_token);
+               guint32 token_index = mono_metadata_token_index (log_token);
 
                gboolean is_addition = token_index-1 >= delta_info->count[token_table].prev_gen_rows ;
 
@@ -1416,7 +1415,7 @@ apply_enclog_pass1 (MonoImage *image_base, MonoImage *image_dmeta, DeltaInfo *de
                g_assert (func_code == 0); /* anything else doesn't make sense here */
        }
 
-       for (int i = 0; i < rows ; ++i) {
+       for (guint32 i = 0; i < rows ; ++i) {
                guint32 cols [MONO_ENCLOG_SIZE];
                mono_metadata_decode_row (table_enclog, i, cols, MONO_ENCLOG_SIZE);
 
@@ -1424,7 +1423,7 @@ apply_enclog_pass1 (MonoImage *image_base, MonoImage *image_dmeta, DeltaInfo *de
                int func_code = cols [MONO_ENCLOG_FUNC_CODE];
 
                int token_table = mono_metadata_token_table (log_token);
-               int token_index = mono_metadata_token_index (log_token);
+               guint32 token_index = mono_metadata_token_index (log_token);
 
                gboolean is_addition = token_index-1 >= delta_info->count[token_table].prev_gen_rows ;
 
@@ -1566,7 +1565,7 @@ apply_enclog_pass1 (MonoImage *image_base, MonoImage *image_dmeta, DeltaInfo *de
                                g_assert (next_cols [MONO_ENCLOG_FUNC_CODE] == ENC_FUNC_DEFAULT);
                                int next_token = next_cols [MONO_ENCLOG_TOKEN];
                                int next_table = mono_metadata_token_table (next_token);
-                               int next_index = mono_metadata_token_index (next_token);
+                               guint32 next_index = mono_metadata_token_index (next_token);
                                g_assert (next_table == MONO_TABLE_METHOD);
                                /* expecting an added method */
                                g_assert (next_index-1 >= delta_info->count[next_table].prev_gen_rows);
@@ -1582,7 +1581,7 @@ apply_enclog_pass1 (MonoImage *image_base, MonoImage *image_dmeta, DeltaInfo *de
                                g_assert (next_cols [MONO_ENCLOG_FUNC_CODE] == ENC_FUNC_DEFAULT);
                                int next_token = next_cols [MONO_ENCLOG_TOKEN];
                                int next_table = mono_metadata_token_table (next_token);
-                               int next_index = mono_metadata_token_index (next_token);
+                               guint32 next_index = mono_metadata_token_index (next_token);
                                g_assert (next_table == MONO_TABLE_FIELD);
                                /* expecting an added field */
                                g_assert (next_index-1 >= delta_info->count[next_table].prev_gen_rows);
@@ -1643,14 +1642,14 @@ hot_reload_get_method_debug_information (MonoPPDBFile *ppdb_file, int idx)
 
        MonoImage *image_dppdb = ppdb_file->image;
        MonoTableInfo *table_encmap = &image_dppdb->tables [MONO_TABLE_ENCMAP];
-       int rows = table_info_get_rows (table_encmap);
-       for (int i = 0; i < rows ; ++i) {
+       guint32 rows = table_info_get_rows (table_encmap);
+       for (guint32 i = 0; i < rows ; ++i) {
                guint32 cols [MONO_ENCMAP_SIZE];
                mono_metadata_decode_row (table_encmap, i, cols, MONO_ENCMAP_SIZE);
                int map_token = cols [MONO_ENCMAP_TOKEN];
                int token_table = mono_metadata_token_table (map_token);
                if (token_table == MONO_TABLE_METHODBODY) {
-                       int token_index = mono_metadata_token_index (map_token);
+                       guint32 token_index = mono_metadata_token_index (map_token);
                        if (token_index == idx) {
                                MonoDebugInformationEnc *encDebugInfo = g_new0 (MonoDebugInformationEnc, 1);
                                encDebugInfo->idx = i + 1;
@@ -1972,7 +1971,7 @@ static gboolean
 apply_enclog_pass2 (Pass2Context *ctx, MonoImage *image_base, BaselineInfo *base_info, uint32_t generation, MonoImage *image_dmeta, DeltaInfo *delta_info, gconstpointer dil_data, uint32_t dil_length, MonoError *error)
 {
        MonoTableInfo *table_enclog = &image_dmeta->tables [MONO_TABLE_ENCLOG];
-       int rows = table_info_get_rows (table_enclog);
+       guint32 rows = table_info_get_rows (table_enclog);
 
        /* NOTE: Suppressed colums
         *
@@ -2004,7 +2003,7 @@ apply_enclog_pass2 (Pass2Context *ctx, MonoImage *image_base, BaselineInfo *base
        uint32_t add_event_eventmap = 0;
 
        gboolean assemblyref_updated = FALSE;
-       for (int i = 0; i < rows ; ++i) {
+       for (guint32 i = 0; i < rows ; ++i) {
                guint32 cols [MONO_ENCLOG_SIZE];
                mono_metadata_decode_row (table_enclog, i, cols, MONO_ENCLOG_SIZE);
 
@@ -2012,7 +2011,7 @@ apply_enclog_pass2 (Pass2Context *ctx, MonoImage *image_base, BaselineInfo *base
                int func_code = cols [MONO_ENCLOG_FUNC_CODE];
 
                int token_table = mono_metadata_token_table (log_token);
-               int token_index = mono_metadata_token_index (log_token);
+               guint32 token_index = mono_metadata_token_index (log_token);
 
                gboolean is_addition = token_index-1 >= delta_info->count[token_table].prev_gen_rows ;
 
@@ -2073,7 +2072,7 @@ apply_enclog_pass2 (Pass2Context *ctx, MonoImage *image_base, BaselineInfo *base
                                MonoImage *delta_child = ((DeltaInfo*)l->data)->delta_image;
                                old_rows += table_info_get_rows (&delta_child->tables [MONO_TABLE_ASSEMBLYREF]);
                        }
-                       int new_rows = table_info_get_rows (&image_dmeta->tables [MONO_TABLE_ASSEMBLYREF]);
+                       guint32 new_rows = table_info_get_rows (&image_dmeta->tables [MONO_TABLE_ASSEMBLYREF]);
 
                        old_rows -= new_rows;
                        g_assert (new_rows > 0);
@@ -2131,7 +2130,7 @@ apply_enclog_pass2 (Pass2Context *ctx, MonoImage *image_base, BaselineInfo *base
                                delta_info->method_ppdb_table_update = g_hash_table_new (g_direct_hash, g_direct_equal);
 
                        int mapped_token = hot_reload_relative_delta_index (image_dmeta, delta_info, mono_metadata_make_token (token_table, token_index));
-                       int rva = mono_metadata_decode_row_col (&image_dmeta->tables [MONO_TABLE_METHOD], mapped_token - 1, MONO_METHOD_RVA);
+                       guint32 rva = mono_metadata_decode_row_col (&image_dmeta->tables [MONO_TABLE_METHOD], mapped_token - 1, MONO_METHOD_RVA);
                        if (rva < dil_length) {
                                char *il_address = ((char *) dil_data) + rva;
                                MonoDebugInformationEnc *method_debug_information = hot_reload_get_method_debug_information (delta_info->ppdb_file, token_index);
@@ -2636,7 +2635,7 @@ hot_reload_table_bounds_check (MonoImage *base_image, int table_index, int token
 
                table = &delta_info->mutants [table_index];
                ridx = token_index - 1;
-       } while (ridx < 0 || ridx >= table_info_get_rows (table));
+       } while (ridx < 0 || GINT_TO_UINT32(ridx) >= table_info_get_rows (table));
 
        return FALSE;
 }
@@ -2703,7 +2702,7 @@ hot_reload_table_num_rows_slow (MonoImage *base, int table_index)
 
        uint32_t current_gen = hot_reload_get_thread_generation ();
 
-       int rows = table_info_get_rows (&base->tables [table_index]);
+       guint32 rows = table_info_get_rows (&base->tables [table_index]);
        GList *cur;
        for (cur = base_info->delta_info; cur; cur = cur->next) {
                DeltaInfo *delta_info = (DeltaInfo*)cur->data;
@@ -2805,8 +2804,8 @@ hot_reload_field_parent (MonoImage *base_image, uint32_t field_token)
 
 /* HACK - keep in sync with locator_t in metadata/metadata.c */
 typedef struct {
-       int idx;                        /* The index that we are trying to locate */
-       int col_idx;            /* The index in the row where idx may be stored */
+       guint32 idx;                    /* The index that we are trying to locate */
+       guint32 col_idx;                /* The index in the row where idx may be stored */
        MonoTableInfo *t;       /* pointer to the table */
        guint32 result;
 } upd_locator_t;
index 86c57ba..0276020 100644 (file)
@@ -1406,6 +1406,8 @@ __CAST_PTRTYPE_TO_UTYPE(gintptr, gulong, ULONG_MAX)
 __CAST_PTRTYPE_TO_STYPE(gintptr, gint, INT_MIN, INT_MAX)
 __CAST_PTRTYPE_TO_UTYPE(gintptr, guint, UINT_MAX)
 
+__CAST_PTRTYPE_TO_UTYPE(gintptr, gsize, SIZE_MAX)
+
 __CAST_PTRTYPE_TO_STYPE(guintptr, gint32, INT32_MIN, INT32_MAX)
 __CAST_PTRTYPE_TO_UTYPE(guintptr, guint32, UINT32_MAX)
 __CAST_PTRTYPE_TO_STYPE(guintptr, gint16, INT16_MIN, INT16_MAX)
@@ -1443,6 +1445,9 @@ __CAST_STYPE_TO_UTYPE(gssize, guint, UINT_MAX)
 __CAST_STYPE_TO_UTYPE(gssize, gsize, SIZE_MAX)
 __CAST_UTYPE_TO_STYPE(gsize, gssize, PTRDIFF_MIN, PTRDIFF_MAX)
 
+__CAST_STYPE_TO_UTYPE(glong, gulong, ULONG_MAX)
+__CAST_UTYPE_TO_STYPE(gulong, glong, LONG_MIN, LONG_MAX)
+
 __CAST_STYPE_TO_STYPE(gdouble, gint64, INT64_MIN, INT64_MAX)
 __CAST_STYPE_TO_UTYPE(gdouble, guint64, UINT64_MAX)
 __CAST_STYPE_TO_STYPE(gdouble, gint32, INT32_MIN, INT32_MAX)
@@ -1588,6 +1593,8 @@ __CAST_UTYPE_TO_STYPE(gunichar, gchar, CHAR_MIN, CHAR_MAX)
 #define GINTPTR_TO_INT(v)        G_CAST_PTRTYPE_TO_STYPE(gintptr, gint, v)
 #define GINTPTR_TO_UINT(v)       G_CAST_PTRTYPE_TO_UTYPE(gintptr, guint, v)
 
+#define GINTPTR_TO_SIZE(v)       G_CAST_PTRTYPE_TO_UTYPE(gintptr, gsize, v)
+
 #define GUINTPTR_TO_INT32(v)     G_CAST_PTRTYPE_TO_STYPE(guintptr, gint32, v)
 #define GUINTPTR_TO_UINT32(v)    G_CAST_PTRTYPE_TO_UTYPE(guintptr, guint32, v)
 
@@ -1624,6 +1631,9 @@ __CAST_UTYPE_TO_STYPE(gunichar, gchar, CHAR_MIN, CHAR_MAX)
 #define GSSIZE_TO_SIZE(v)        G_CAST_TYPE_TO_TYPE(gssize, gsize, v)
 #define GSIZE_TO_SSIZE(v)        G_CAST_TYPE_TO_TYPE(gsize, gssize, v)
 
+#define GLONG_TO_ULONG(v)        G_CAST_TYPE_TO_TYPE(glong, gulong, v)
+#define GULONG_TO_LONG(v)        G_CAST_TYPE_TO_TYPE(gulong, glong, v)
+
 #define GDOUBLE_TO_INT64(v)      G_CAST_TYPE_TO_TYPE(gdouble, gint64, v)
 #define GDOUBLE_TO_UINT64(v)     G_CAST_TYPE_TO_TYPE(gdouble, guint64, v)
 #define GDOUBLE_TO_INT32(v)      G_CAST_TYPE_TO_TYPE(gdouble, gint32, v)
index f3ce63d..c46fd46 100644 (file)
@@ -300,7 +300,7 @@ ves_icall_System_Runtime_Loader_AssemblyLoadContext_InternalGetLoadedAssemblies
 
        MonoArrayHandle res = mono_array_new_handle (mono_class_get_assembly_class (), assemblies->len, error);
        goto_if_nok (error, leave);
-       for (int i = 0; i < assemblies->len; ++i) {
+       for (guint i = 0; i < assemblies->len; ++i) {
                if (!add_assembly_to_array (res, i, (MonoAssembly *)g_ptr_array_index (assemblies, i), error))
                        goto leave;
        }
index 56d2064..289c193 100644 (file)
@@ -2915,9 +2915,8 @@ mono_assembly_release_gc_roots (MonoAssembly *assembly)
                return;
 
        if (assembly_is_dynamic (assembly)) {
-               int i;
                MonoDynamicImage *dynimg = (MonoDynamicImage *)assembly->image;
-               for (i = 0; i < dynimg->image.module_count; ++i)
+               for (guint32 i = 0; i < dynimg->image.module_count; ++i)
                        mono_dynamic_image_release_gc_roots ((MonoDynamicImage *)dynimg->image.modules [i]);
                mono_dynamic_image_release_gc_roots (dynimg);
        }
index c7f0960..39473a6 100644 (file)
@@ -3233,7 +3233,6 @@ search_modules (MonoImage *image, const char *name_space, const char *name, gboo
        MonoTableInfo *file_table = &image->tables [MONO_TABLE_FILE];
        MonoImage *file_image;
        MonoClass *klass;
-       int i;
 
        error_init (error);
 
@@ -3243,8 +3242,8 @@ search_modules (MonoImage *image, const char *name_space, const char *name, gboo
         * Note: image->modules contains the contents of the MODULEREF table, while
         * the real module list is in the FILE table.
         */
-       int rows = table_info_get_rows (file_table);
-       for (i = 0; i < rows; i++) {
+       guint32 rows = table_info_get_rows (file_table);
+       for (guint32 i = 0; i < rows; i++) {
                guint32 cols [MONO_FILE_SIZE];
                mono_metadata_decode_row (file_table, i, cols, MONO_FILE_SIZE);
                if (cols [MONO_FILE_FLAGS] == FILE_CONTAINS_NO_METADATA)
index ba5a7c2..fbcf676 100644 (file)
@@ -169,10 +169,9 @@ find_field_index (MonoClass *klass, MonoClassField *field) {
 static guint32
 find_property_index (MonoClass *klass, MonoProperty *property)
 {
-       int i;
        MonoClassPropertyInfo *info = mono_class_get_property_info (klass);
 
-       for (i = 0; i < info->count; ++i) {
+       for (guint32 i = 0; i < info->count; ++i) {
                if (property == &info->properties [i])
                        return info->first + 1 + i;
        }
@@ -185,10 +184,9 @@ find_property_index (MonoClass *klass, MonoProperty *property)
 static guint32
 find_event_index (MonoClass *klass, MonoEvent *event)
 {
-       int i;
        MonoClassEventInfo *info = mono_class_get_event_info (klass);
 
-       for (i = 0; i < info->count; ++i) {
+       for (guint32 i = 0; i < info->count; ++i) {
                if (event == &info->events [i])
                        return info->first + 1 + i;
        }
@@ -1631,7 +1629,6 @@ ves_icall_System_Reflection_RuntimeCustomAttributeData_ResolveArgumentsInternal
        MonoReflectionAssembly *assembly = MONO_HANDLE_RAW (assembly_h);
        MonoMethodSignature *sig;
        MonoObjectHandle obj_h, namedarg_h, minfo_h;
-       int i;
 
        if (len == 0)
                return;
@@ -1658,7 +1655,7 @@ ves_icall_System_Reflection_RuntimeCustomAttributeData_ResolveArgumentsInternal
                goto leave;
 
        sig = mono_method_signature_internal (method);
-       for (i = 0; i < sig->param_count; ++i) {
+       for (guint16 i = 0; i < sig->param_count; ++i) {
                MonoObject *obj;
                MonoObject *typedarg;
                MonoType *t;
@@ -1674,7 +1671,7 @@ ves_icall_System_Reflection_RuntimeCustomAttributeData_ResolveArgumentsInternal
                mono_array_setref_internal (typed_args, i, typedarg);
        }
 
-       for (i = 0; i < mono_array_length_internal (named_args); ++i) {
+       for (guint32 i = 0; i < mono_array_length_internal (named_args); ++i) {
                MonoObject *obj;
                MonoObject *namedarg, *minfo;
 
@@ -2761,7 +2758,7 @@ metadata_foreach_custom_attr_from_index (MonoImage *image, guint32 idx, MonoAsse
                return;
        i --;
        gboolean stop_iterating = FALSE;
-       int rows = table_info_get_rows (ca);
+       guint32 rows = table_info_get_rows (ca);
        while (!stop_iterating && i < rows) {
                if (mono_metadata_decode_row_col (ca, i, MONO_CUSTOM_ATTR_PARENT) != idx)
                        break;
@@ -2878,8 +2875,8 @@ init_weak_fields_inner (MonoImage *image, GHashTable *indexes)
 
                tdef = &image->tables [MONO_TABLE_CUSTOMATTRIBUTE];
                guint32 parent, field_idx, col, mtoken, idx;
-               int rows = table_info_get_rows (tdef);
-               for (int i = 0; i < rows; ++i) {
+               guint32 rows = table_info_get_rows (tdef);
+               for (guint32 i = 0; i < rows; ++i) {
                        parent = mono_metadata_decode_row_col (tdef, i, MONO_CUSTOM_ATTR_PARENT);
                        if ((parent & MONO_CUSTOM_ATTR_MASK) != MONO_CUSTOM_ATTR_FIELDDEF)
                                continue;
@@ -2903,8 +2900,8 @@ init_weak_fields_inner (MonoImage *image, GHashTable *indexes)
                /* Check whenever the assembly references the WeakAttribute type */
                gboolean found = FALSE;
                tdef = &image->tables [MONO_TABLE_TYPEREF];
-               int rows = table_info_get_rows (tdef);
-               for (int i = 0; i < rows; ++i) {
+               guint32 rows = table_info_get_rows (tdef);
+               for (guint32 i = 0; i < rows; ++i) {
                        guint32 string_offset = mono_metadata_decode_row_col (tdef, i, MONO_TYPEREF_NAME);
                        const char *name = mono_metadata_string_heap (image, string_offset);
                        if (!strcmp (name, "WeakAttribute")) {
index c8df388..5db1a37 100644 (file)
@@ -131,8 +131,6 @@ mono_custom_modifiers_get_desc (GString *res, const MonoType *type, gboolean inc
 void
 mono_type_get_desc (GString *res, MonoType *type, gboolean include_namespace)
 {
-       int i;
-
        switch (type->type) {
        case MONO_TYPE_VOID:
                g_string_append (res, "void"); break;
@@ -177,7 +175,7 @@ mono_type_get_desc (GString *res, MonoType *type, gboolean include_namespace)
        case MONO_TYPE_ARRAY:
                mono_type_get_desc (res, &type->data.array->eklass->_byval_arg, include_namespace);
                g_string_append_c (res, '[');
-               for (i = 1; i < type->data.array->rank; ++i)
+               for (guint8 i = 1; i < type->data.array->rank; ++i)
                        g_string_append_c (res, ',');
                g_string_append_c (res, ']');
                break;
@@ -196,7 +194,7 @@ mono_type_get_desc (GString *res, MonoType *type, gboolean include_namespace)
                g_string_append (res, "<");
                context = &type->data.generic_class->context;
                if (context->class_inst) {
-                       for (i = 0; i < context->class_inst->type_argc; ++i) {
+                       for (guint i = 0; i < context->class_inst->type_argc; ++i) {
                                if (i > 0)
                                        g_string_append (res, ", ");
                                mono_type_get_desc (res, context->class_inst->type_argv [i], include_namespace);
@@ -205,7 +203,7 @@ mono_type_get_desc (GString *res, MonoType *type, gboolean include_namespace)
                if (context->method_inst) {
                        if (context->class_inst)
                                        g_string_append (res, "; ");
-                       for (i = 0; i < context->method_inst->type_argc; ++i) {
+                       for (guint i = 0; i < context->method_inst->type_argc; ++i) {
                                if (i > 0)
                                        g_string_append (res, ", ");
                                mono_type_get_desc (res, context->method_inst->type_argv [i], include_namespace);
@@ -305,9 +303,7 @@ mono_signature_full_name (MonoMethodSignature *sig)
 void
 mono_ginst_get_desc (GString *str, MonoGenericInst *ginst)
 {
-       int i;
-
-       for (i = 0; i < ginst->type_argc; ++i) {
+       for (guint i = 0; i < ginst->type_argc; ++i) {
                if (i > 0)
                        g_string_append (str, ", ");
                mono_type_get_desc (str, ginst->type_argv [i], TRUE);
@@ -599,7 +595,6 @@ mono_method_desc_search_in_image (MonoMethodDesc *desc, MonoImage *image)
        MonoClass *klass;
        const MonoTableInfo *methods;
        MonoMethod *method;
-       int i;
 
        /* Handle short names for system classes */
        if (!desc->name_space && image == mono_defaults.corlib) {
@@ -618,7 +613,7 @@ mono_method_desc_search_in_image (MonoMethodDesc *desc, MonoImage *image)
        /* FIXME: Is this call necessary?  We don't use its result. */
        mono_image_get_table_info (image, MONO_TABLE_TYPEDEF);
        methods = mono_image_get_table_info (image, MONO_TABLE_METHOD);
-       for (i = 0; i < mono_table_info_get_rows (methods); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (methods); ++i) {
                ERROR_DECL (error);
                guint32 token = mono_metadata_decode_row_col (methods, i, MONO_METHOD_NAME);
                const char *n = mono_metadata_string_heap (image, token);
index c6e50f9..f63fea6 100644 (file)
@@ -66,7 +66,6 @@ get_pe_debug_info (MonoImage *image, guint8 *out_guid, gint32 *out_age, gint32 *
 {
        MonoPEDirEntry *debug_dir_entry;
        ImageDebugDirectory debug_dir;
-       int idx;
        gboolean guid_found = FALSE;
        guint8 *data;
 
@@ -77,7 +76,7 @@ get_pe_debug_info (MonoImage *image, guint8 *out_guid, gint32 *out_age, gint32 *
                return FALSE;
 
        int offset = mono_cli_rva_image_map (image, debug_dir_entry->rva);
-       for (idx = 0; idx < debug_dir_entry->size / sizeof (ImageDebugDirectory); ++idx) {
+       for (guint32 idx = 0; idx < debug_dir_entry->size / sizeof (ImageDebugDirectory); ++idx) {
                data = (guint8 *) ((ImageDebugDirectory *) (image->raw_data + offset) + idx);
                debug_dir.characteristics = read32(data);
                debug_dir.time_date_stamp = read32(data + 4);
@@ -362,7 +361,8 @@ mono_ppdb_lookup_location_internal (MonoImage *image, int idx, uint32_t offset,
        const char *ptr;
        const char *end;
        char *docname = NULL;
-       int size, docidx, iloffset, delta_il, delta_lines, delta_cols, start_line, start_col, adv_line, adv_col;
+       int size, docidx, delta_lines, delta_cols, start_line, start_col, adv_line, adv_col;
+       guint32 iloffset;
        gboolean first = TRUE, first_non_hidden = TRUE;
        MonoDebugSourceLocation *location;
 
@@ -386,7 +386,7 @@ mono_ppdb_lookup_location_internal (MonoImage *image, int idx, uint32_t offset,
        start_line = 0;
        start_col = 0;
        while (ptr < end) {
-               delta_il = mono_metadata_decode_value (ptr, &ptr);
+               guint32 delta_il = mono_metadata_decode_value (ptr, &ptr);
                if (!first && delta_il == 0) {
                        /* document-record */
                        docidx = mono_metadata_decode_value (ptr, &ptr);
@@ -493,7 +493,7 @@ mono_ppdb_get_seq_points_internal (MonoImage *image, MonoPPDBFile *ppdb, MonoMet
                return -1;
 
        MonoTableInfo *methodbody_table = &tables [MONO_TABLE_METHODBODY];
-       if (G_UNLIKELY (method_idx - 1 >= table_info_get_rows (methodbody_table))) {
+       if (G_UNLIKELY (GINT_TO_UINT32(method_idx) - 1 >= table_info_get_rows (methodbody_table))) {
                char *method_name = mono_method_full_name (method, FALSE);
                g_error ("Method idx %d is greater than number of rows (%d) in PPDB MethodDebugInformation table, for method %s in '%s'. Likely a malformed PDB file.",
                 method_idx - 1, table_info_get_rows (methodbody_table), method_name, image->name);
@@ -625,7 +625,7 @@ mono_ppdb_lookup_locals_internal (MonoImage *image, int method_idx)
        guint32 cols [MONO_LOCALSCOPE_SIZE];
        guint32 locals_cols [MONO_LOCALVARIABLE_SIZE];
 
-       int i, lindex, sindex, locals_idx, locals_end_idx, nscopes, start_scope_idx, scope_idx;
+       guint32 lindex, locals_idx, locals_end_idx, nscopes, start_scope_idx, scope_idx;
 
        start_scope_idx = mono_metadata_localscope_from_methoddef (image, method_idx);
 
@@ -651,7 +651,7 @@ mono_ppdb_lookup_locals_internal (MonoImage *image, int method_idx)
        // this endpoint becomes locals_end_idx below
 
        // March to the last scope that is in this method
-       int rows = table_info_get_rows (&tables [MONO_TABLE_LOCALSCOPE]);
+       guint32 rows = table_info_get_rows (&tables [MONO_TABLE_LOCALSCOPE]);
        while (scope_idx <= rows) {
                mono_metadata_decode_row (&tables [MONO_TABLE_LOCALSCOPE], scope_idx-1, cols, MONO_LOCALSCOPE_SIZE);
                if (cols [MONO_LOCALSCOPE_METHOD] != method_idx)
@@ -680,7 +680,7 @@ mono_ppdb_lookup_locals_internal (MonoImage *image, int method_idx)
        res->locals = g_new0 (MonoDebugLocalVar, res->num_locals);
 
        lindex = 0;
-       for (sindex = 0; sindex < nscopes; ++sindex) {
+       for (guint32 sindex = 0; sindex < nscopes; ++sindex) {
                scope_idx = start_scope_idx + sindex;
                mono_metadata_decode_row (&tables [MONO_TABLE_LOCALSCOPE], scope_idx-1, cols, MONO_LOCALSCOPE_SIZE);
 
@@ -696,7 +696,7 @@ mono_ppdb_lookup_locals_internal (MonoImage *image, int method_idx)
 
                //printf ("Scope: %s %d %d %d-%d\n", mono_method_full_name (method, 1), cols [MONO_LOCALSCOPE_STARTOFFSET], cols [MONO_LOCALSCOPE_LENGTH], locals_idx, locals_end_idx);
 
-               for (i = locals_idx; i < locals_end_idx; ++i) {
+               for (guint32 i = locals_idx; i < locals_end_idx; ++i) {
                        mono_metadata_decode_row (&tables [MONO_TABLE_LOCALVARIABLE], i - 1, locals_cols, MONO_LOCALVARIABLE_SIZE);
 
                        res->locals [lindex].name = g_strdup (mono_metadata_string_heap (image, locals_cols [MONO_LOCALVARIABLE_NAME]));
@@ -743,8 +743,8 @@ mono_ppdb_lookup_locals (MonoDebugMethodInfo *minfo)
 * We use this to pass context information to the row locator
 */
 typedef struct {
-       int idx;                        /* The index that we are trying to locate */
-       int col_idx;            /* The index in the row where idx may be stored */
+       guint32 idx;                    /* The index that we are trying to locate */
+       guint32 col_idx;                /* The index in the row where idx may be stored */
        MonoTableInfo *t;       /* pointer to the table */
        guint32 result;
 } locator_t;
index 9201b8d..8ada324 100644 (file)
@@ -104,13 +104,12 @@ MonoImage *
 mono_find_dynamic_image_owner (void *ptr)
 {
        MonoImage *owner = NULL;
-       int i;
 
        dynamic_images_lock ();
 
        if (dynamic_images)
        {
-               for (i = 0; !owner && i < dynamic_images->len; ++i) {
+               for (guint i = 0; !owner && i < dynamic_images->len; ++i) {
                        MonoImage *image = (MonoImage *)g_ptr_array_index (dynamic_images, i);
                        if (mono_mempool_contains_addr (image->mempool, ptr))
                                owner = image;
index de53001..c6333e5 100644 (file)
@@ -28,7 +28,7 @@ mono_dynstream_init (MonoDynamicStream *sh)
 }
 
 static void
-make_room_in_stream (MonoDynamicStream *stream, int size)
+make_room_in_stream (MonoDynamicStream *stream, guint32 size)
 {
        MONO_REQ_GC_NEUTRAL_MODE;
 
@@ -60,7 +60,7 @@ mono_dynstream_insert_string (MonoDynamicStream *sh, const char *str)
        len = strlen (str) + 1;
        idx = sh->index;
 
-       make_room_in_stream (sh, (int)(idx + len));
+       make_room_in_stream (sh, idx + GSIZE_TO_UINT32(len));
 
        /*
         * We strdup the string even if we already copy them in sh->data
index 59da14b..0e3a9ef 100644 (file)
@@ -1328,7 +1328,6 @@ mono_error_set_field_missing (MonoError *error, MonoClass *klass, const char *fi
 void
 mono_error_set_method_missing (MonoError *error, MonoClass *klass, const char *method_name, MonoMethodSignature *sig, const char *reason, ...)
 {
-       int i;
        char *result;
        GString *res;
 
@@ -1361,7 +1360,7 @@ mono_error_set_method_missing (MonoError *error, MonoClass *klass, const char *m
        if (sig) {
                if (sig->generic_param_count) {
                        g_string_append_c (res, '<');
-                       for (i = 0; i < sig->generic_param_count; ++i) {
+                       for (guint i = 0; i < sig->generic_param_count; ++i) {
                                if (i > 0)
                                        g_string_append (res, ",");
                                g_string_append_printf (res, "!%d", i);
@@ -1370,7 +1369,7 @@ mono_error_set_method_missing (MonoError *error, MonoClass *klass, const char *m
                }
 
                g_string_append_c (res, '(');
-               for (i = 0; i < sig->param_count; ++i) {
+               for (guint16 i = 0; i < sig->param_count; ++i) {
                        if (i > 0)
                                g_string_append_c (res, ',');
                        mono_type_get_desc (res, sig->params [i], TRUE);
index d9433dd..a424c12 100644 (file)
@@ -24,10 +24,10 @@ MonoImage*
 mono_image_loaded_internal (MonoAssemblyLoadContext *alc, const char *name);
 
 MonoImage*
-mono_image_load_file_for_image_checked (MonoImage *image, int fileidx, MonoError *error);
+mono_image_load_file_for_image_checked (MonoImage *image, uint32_t fileidx, MonoError *error);
 
 MonoImage*
-mono_image_load_module_checked (MonoImage *image, int idx, MonoError *error);
+mono_image_load_module_checked (MonoImage *image, uint32_t idx, MonoError *error);
 
 MonoImage *
 mono_image_open_a_lot (MonoAssemblyLoadContext *alc, const char *fname, MonoImageOpenStatus *status, const MonoImageOpenOptions *options);
index 2dbcf88..ff94ac5 100644 (file)
@@ -700,7 +700,7 @@ mono_image_check_for_module_cctor (MonoImage *image)
  * it cannot be loaded. NULL without MonoError being set will be interpreted as "not found".
  */
 MonoImage*
-mono_image_load_module_checked (MonoImage *image, int idx, MonoError *error)
+mono_image_load_module_checked (MonoImage *image, uint32_t idx, MonoError *error)
 {
        error_init (error);
 
@@ -928,7 +928,6 @@ mono_has_pdb_checksum (char *raw_data, uint32_t raw_data_len)
 {
        MonoDotNetHeader cli_header;
        MonoMSDOSHeader msdos;
-       int idx;
        guint8 *data;
 
        int offset = 0;
@@ -950,7 +949,7 @@ mono_has_pdb_checksum (char *raw_data, uint32_t raw_data_len)
                        return FALSE;
                else {
                        const int top = cli_header.coff.coff_sections;
-                       int addr = debug_dir_entry->rva;
+                       guint32 addr = debug_dir_entry->rva;
                        int i = 0;
                        for (i = 0; i < top; i++){
                                MonoSectionTable t;
@@ -974,7 +973,7 @@ mono_has_pdb_checksum (char *raw_data, uint32_t raw_data_len)
                                        break;
                                }
                        }
-                       for (idx = 0; idx < debug_dir_entry->size / sizeof (ImageDebugDirectory); ++idx) {
+                       for (guint32 idx = 0; idx < debug_dir_entry->size / sizeof (ImageDebugDirectory); ++idx) {
                                data = (guint8 *) ((ImageDebugDirectory *) (raw_data + addr) + idx);
                                debug_dir.characteristics = read32(data);
                                debug_dir.time_date_stamp = read32(data + 4);
@@ -1164,7 +1163,7 @@ dump_encmap (MonoImage *image)
 
        if (mono_trace_is_traced (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE)) {
                mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_METADATA_UPDATE, "ENCMAP for %s", image->filename);
-               for (int i = 0; i < table_info_get_rows (encmap); ++i) {
+               for (guint32 i = 0; i < table_info_get_rows (encmap); ++i) {
                        guint32 cols [MONO_ENCMAP_SIZE];
                        mono_metadata_decode_row (encmap, i, cols, MONO_ENCMAP_SIZE);
                        int token = cols [MONO_ENCMAP_TOKEN];
@@ -2556,7 +2555,7 @@ mono_image_get_resource (MonoImage *image, guint32 offset, guint32 *size)
 
 // Returning NULL with no error set will be interpeted as "not found"
 MonoImage*
-mono_image_load_file_for_image_checked (MonoImage *image, int fileidx, MonoError *error)
+mono_image_load_file_for_image_checked (MonoImage *image, uint32_t fileidx, MonoError *error)
 {
        char *base_dir, *name;
        MonoImage *res;
@@ -2591,7 +2590,6 @@ mono_image_load_file_for_image_checked (MonoImage *image, int fileidx, MonoError
                mono_image_unlock (image);
                mono_image_close (old);
        } else {
-               int i;
                /* g_print ("loaded file %s from %s (%p)\n", name, image->name, image->assembly); */
                if (!assign_assembly_parent_for_netmodule (res, image, error)) {
                        mono_image_unlock (image);
@@ -2599,13 +2597,13 @@ mono_image_load_file_for_image_checked (MonoImage *image, int fileidx, MonoError
                        return NULL;
                }
 
-               for (i = 0; i < res->module_count; ++i) {
+               for (guint32 i = 0; i < res->module_count; ++i) {
                        if (res->modules [i] && !res->modules [i]->assembly)
                                res->modules [i]->assembly = image->assembly;
                }
 
                if (!image->files) {
-                       int n = table_info_get_rows (t);
+                       guint32 n = table_info_get_rows (t);
                        image->files = g_new0 (MonoImage*, n);
                        image->file_count = n;
                }
index bee40a5..5a7117f 100644 (file)
@@ -611,7 +611,6 @@ inflate_generic_signature_checked (MonoImage *image, MonoMethodSignature *sig, M
 {
        MonoMethodSignature *res;
        gboolean is_open;
-       int i;
 
        error_init (error);
        if (!context)
@@ -624,7 +623,7 @@ inflate_generic_signature_checked (MonoImage *image, MonoMethodSignature *sig, M
        if (!is_ok (error))
                goto fail;
        is_open = mono_class_is_open_constructed_type (res->ret);
-       for (i = 0; i < sig->param_count; ++i) {
+       for (guint16 i = 0; i < sig->param_count; ++i) {
                res->params [i] = mono_class_inflate_generic_type_checked (sig->params [i], context, error);
                if (!is_ok (error))
                        goto fail;
@@ -645,7 +644,7 @@ inflate_generic_signature_checked (MonoImage *image, MonoMethodSignature *sig, M
 fail:
        if (res->ret)
                mono_metadata_free_type (res->ret);
-       for (i = 0; i < sig->param_count; ++i) {
+       for (guint16 i = 0; i < sig->param_count; ++i) {
                if (res->params [i])
                        mono_metadata_free_type (res->params [i]);
        }
@@ -693,12 +692,12 @@ inflate_generic_header (MonoMethodHeader *header, MonoGenericContext *context, M
 
        error_init (error);
 
-       for (int i = 0; i < header->num_locals; ++i) {
+       for (guint16 i = 0; i < header->num_locals; ++i) {
                res->locals [i] = mono_class_inflate_generic_type_checked (header->locals [i], context, error);
                goto_if_nok (error, fail);
        }
        if (res->num_clauses) {
-               for (int i = 0; i < header->num_clauses; ++i) {
+               for (guint i = 0; i < header->num_clauses; ++i) {
                        MonoExceptionClause *clause = &res->clauses [i];
                        if (clause->flags != MONO_EXCEPTION_CLAUSE_NONE)
                                continue;
index fbe2b5a..985bdbc 100644 (file)
@@ -600,7 +600,7 @@ mono_string_from_byvalwstr_impl (const gunichar2 *data, int max_len, MonoError *
        // FIXME Check max_len while scanning data? mono_string_from_byvalstr does.
        const size_t len = g_utf16_len (data);
 
-       return mono_string_new_utf16_handle (data, (gint32)MIN (len, max_len), error);
+       return mono_string_new_utf16_handle (data, (gint32)MIN (len, GINT_TO_UINT(max_len)), error);
 }
 
 gpointer
@@ -765,7 +765,7 @@ mono_string_builder_new (int starting_string_length, MonoError *error)
        mono_error_assert_ok (error);
 
        MonoArrayHandle chunkChars = MONO_HANDLE_NEW_GET (MonoArray, sb, chunkChars);
-       g_assert (MONO_HANDLE_GETVAL (chunkChars, max_length) >= initial_len);
+       g_assert (MONO_HANDLE_GETVAL (chunkChars, max_length) >= GINT_TO_UINT(initial_len));
 
        return sb;
 }
@@ -784,9 +784,9 @@ mono_string_utf16_to_builder_copy (MonoStringBuilderHandle sb, const gunichar2 *
 
        do {
                MONO_HANDLE_GET (chunkChars, chunk, chunkChars);
-               const int maxLength = MONO_HANDLE_GETVAL (chunkChars, max_length);
+               const guint32 maxLength = MONO_HANDLE_GETVAL (chunkChars, max_length);
                g_assert (maxLength >= 0);
-               const int chunkOffset = MONO_HANDLE_GETVAL (chunk, chunkOffset);
+               const guint32 chunkOffset = MONO_HANDLE_GETVAL (chunk, chunkOffset);
                g_assert (chunkOffset >= 0);
                if (maxLength > 0 && chunkOffset < string_len) {
                        // Check that we will not overrun our boundaries.
@@ -828,9 +828,9 @@ mono_string_utf8len_to_builder (MonoStringBuilderHandle sb, const char *text, gs
        GError *gerror = NULL;
        glong copied;
        gunichar2* ut = g_utf8_to_utf16 (text, (glong)len, NULL, &copied, &gerror);
-       int capacity = mono_string_builder_capacity (sb);
+       guint capacity = mono_string_builder_capacity (sb);
 
-       if (copied > capacity)
+       if (GLONG_TO_ULONG(copied) > capacity)
                copied = capacity;
 
        if (!gerror) {
@@ -917,7 +917,7 @@ mono_string_builder_to_utf8_impl (MonoStringBuilderHandle sb, MonoError *error)
        }
 
        len = mono_string_builder_capacity (sb) + 1;
-       res = (char *)mono_marshal_alloc (MAX (byte_count + 1, len), error);
+       res = (char *)mono_marshal_alloc (MAX (GLONG_TO_ULONG(byte_count) + 1, len), error);
        if (!is_ok (error)) {
                res = NULL;
                goto exit;
@@ -978,7 +978,7 @@ mono_string_builder_to_utf16_impl (MonoStringBuilderHandle sb, MonoError *error)
                        const int chunkOffset = MONO_HANDLE_GETVAL (chunk, chunkOffset);
                        g_assert (chunkOffset >= 0);
                        g_assertf ((chunkOffset + chunkLength) >= chunkLength, "integer overflow");
-                       g_assertf ((chunkOffset + chunkLength) <= capacity, "A chunk in the StringBuilder had a length longer than expected from the offset.");
+                       g_assertf (GINT_TO_UINT(chunkOffset + chunkLength) <= capacity, "A chunk in the StringBuilder had a length longer than expected from the offset.");
                        memcpy (str + chunkOffset, MONO_HANDLE_RAW (chunkChars)->vector, chunkLength * sizeof (gunichar2));
                }
                MONO_HANDLE_GET (chunk, chunk, chunkPrevious);
@@ -1111,8 +1111,8 @@ mono_string_to_byvalstr_impl (char *dst, MonoStringHandle src, int size, MonoErr
 
        char *s = mono_string_handle_to_utf8 (src, error);
        return_if_nok (error);
-       size_t len = MIN (size, strlen (s));
-       len -= (len >= size);
+       size_t len = MIN (GINT_TO_UINT(size), strlen (s));
+       len -= (len >= GINT_TO_UINT(size));
        memcpy (dst, s, len);
        dst [len] = 0;
        g_free (s);
@@ -3246,9 +3246,8 @@ mono_marshal_set_callconv_from_unmanaged_callconv_attribute (MonoMethod *method,
                return;
        }
 
-       mono_array_size_t i;
        MonoCustomAttrEntry *attr = NULL;
-       for (i = 0; i < cinfo->num_attrs; ++i) {
+       for (int i = 0; i < cinfo->num_attrs; ++i) {
                MonoClass *ctor_class = cinfo->attrs [i].ctor->klass;
                if (ctor_class == attr_class) {
                        attr = &cinfo->attrs [i];
@@ -3262,7 +3261,7 @@ mono_marshal_set_callconv_from_unmanaged_callconv_attribute (MonoMethod *method,
                MonoArray *named_args = mono_marshal_get_callconvs_array_from_attribute(attr, &arginfo);
                if (named_args)
                {
-                       for (i = 0; i < mono_array_length_internal(named_args); ++i) {
+                       for (mono_array_size_t i = 0; i < mono_array_length_internal(named_args); ++i) {
                                CattrNamedArg *info = &arginfo[i];
                                g_assert(info->field);
                                if (strcmp(info->field->name, "CallConvs") != 0)
@@ -3326,9 +3325,8 @@ mono_marshal_set_callconv_from_unmanaged_callers_only_attribute (MonoMethod *met
                return;
        }
 
-       mono_array_size_t i;
        MonoCustomAttrEntry *attr = NULL;
-       for (i = 0; i < cinfo->num_attrs; ++i) {
+       for (int i = 0; i < cinfo->num_attrs; ++i) {
                MonoClass *ctor_class = cinfo->attrs [i].ctor->klass;
                if (ctor_class == attr_class) {
                        attr = &cinfo->attrs [i];
@@ -3339,7 +3337,7 @@ mono_marshal_set_callconv_from_unmanaged_callers_only_attribute (MonoMethod *met
        if (attr != NULL) {
                MonoDecodeCustomAttr *decoded_args = mono_reflection_create_custom_attr_data_args_noalloc (mono_defaults.corlib, attr->ctor, attr->data, attr->data_size, error);
                mono_error_assert_ok (error);
-               for (i = 0; i < decoded_args->named_args_num; ++i) {
+               for (int i = 0; i < decoded_args->named_args_num; ++i) {
                        if (decoded_args->named_args_info [i].field && !strcmp (decoded_args->named_args_info [i].field->name, "CallConvs")) {
                                g_assertf(decoded_args->named_args_info [i].field->type->type == MONO_TYPE_SZARRAY, "UnmanagedCallersOnlyAttribute parameter %s must be an array, specified for method %s", decoded_args->named_args_info [i].field->name, method->name);
                                MonoCustomAttrValueArray *calling_conventions = decoded_args->named_args[i]->value.array;
@@ -5332,7 +5330,6 @@ void
 mono_struct_delete_old (MonoClass *klass, char *ptr)
 {
        MonoMarshalType *info;
-       int i;
 
        info = mono_marshal_load_type_info (klass);
 
@@ -5342,7 +5339,7 @@ mono_struct_delete_old (MonoClass *klass, char *ptr)
        if (m_class_is_blittable (klass))
                return;
 
-       for (i = 0; i < info->num_fields; i++) {
+       for (guint32 i = 0; i < info->num_fields; i++) {
                MonoMarshalConv conv;
                MonoType *ftype = info->fields [i].field->type;
                char *cpos;
index e5b20e2..bab7224 100644 (file)
@@ -35,7 +35,7 @@ lock_free_mempool_chunk_new (LockFreeMempool *mp, int len)
        int size;
 
        size = mono_pagesize ();
-       while (size - sizeof (LockFreeMempoolChunk) < len)
+       while (size - sizeof (LockFreeMempoolChunk) < GINT_TO_UINT(len))
                size += mono_pagesize ();
        chunk = (LockFreeMempoolChunk *)mono_valloc (0, size, MONO_MMAP_READ|MONO_MMAP_WRITE, MONO_MEM_ACCOUNT_MEM_MANAGER);
        g_assert (chunk);
@@ -77,9 +77,9 @@ lock_free_mempool_alloc0 (LockFreeMempool *mp, guint size)
 
        /* The code below is lock-free, 'chunk' is shared state */
        oldpos = mono_atomic_fetch_add_i32 (&chunk->pos, size);
-       if (oldpos + size > chunk->size) {
+       if (oldpos + size > GINT_TO_UINT(chunk->size)) {
                chunk = lock_free_mempool_chunk_new (mp, size);
-               g_assert (chunk->pos + size <= chunk->size);
+               g_assert (chunk->pos + size <= GINT_TO_UINT(chunk->size));
                res = chunk->mem;
                chunk->pos += size;
                mono_memory_barrier ();
@@ -150,7 +150,7 @@ memory_manager_delete_objects (MonoMemoryManager *memory_manager)
        memory_manager->freeing = TRUE;
 
        // Must be done before type_hash is freed
-       for (int i = 0; i < memory_manager->class_vtable_array->len; i++)
+       for (guint i = 0; i < memory_manager->class_vtable_array->len; i++)
                unregister_vtable_reflection_type ((MonoVTable *)g_ptr_array_index (memory_manager->class_vtable_array, i));
 
        g_ptr_array_free (memory_manager->class_vtable_array, TRUE);
@@ -454,7 +454,7 @@ get_mem_manager_for_alcs (MonoAssemblyLoadContext **alcs, int nalcs)
        mem_managers = alc->generic_memory_managers;
 
        res = NULL;
-       for (int mindex = 0; mindex < mem_managers->len; ++mindex) {
+       for (guint mindex = 0; mindex < mem_managers->len; ++mindex) {
                MonoMemoryManager *mm = (MonoMemoryManager*)g_ptr_array_index (mem_managers, mindex);
 
                if (match_mem_manager (mm, alcs, nalcs)) {
index 093f113..d115df5 100644 (file)
@@ -252,7 +252,7 @@ bb_split (MonoSimpleBasicBlock *first, MonoSimpleBasicBlock *hint, MonoSimpleBas
                do {
                        if (bb_idx_is_contained (first, target))
                                break;
-                       if (first->start > target)
+                       if (GINT_TO_UINT(first->start )> target)
                                first = first->left;
                        else
                                first = first->right;
@@ -353,7 +353,7 @@ bb_formation_il_pass (const unsigned char *start, const unsigned char *end, Mono
                        return;
                }
 
-               while (current && cli_addr >= current->end)
+               while (current && cli_addr >= GINT_TO_UINT(current->end))
                        current = current->next;
                g_assert (current);
 
@@ -469,13 +469,12 @@ bb_formation_il_pass (const unsigned char *start, const unsigned char *end, Mono
 static void
 bb_formation_eh_pass (MonoMethodHeader *header, MonoSimpleBasicBlock *bb, MonoSimpleBasicBlock **root, MonoMethod *method, MonoError *error)
 {
-       int i;
-       int end = header->code_size;
+       guint32 end = header->code_size;
 
        error_init (error);
 
        /*We must split at all points to verify for targets in the middle of an instruction*/
-       for (i = 0; i < header->num_clauses; ++i) {
+       for (guint i = 0; i < header->num_clauses; ++i) {
                MonoExceptionClause *clause = header->clauses + i;
                MonoSimpleBasicBlock *try_block, *handler;
 
index 6077450..6a27320 100644 (file)
@@ -110,7 +110,7 @@ static void mono_g_hash_table_value_store (MonoGHashTable *hash, int slot, MonoO
 }
 
 /* Returns position of key or of an empty slot for it */
-static int mono_g_hash_table_find_slot (MonoGHashTable *hash, const MonoObject *key)
+static guint mono_g_hash_table_find_slot (MonoGHashTable *hash, const MonoObject *key)
 {
        guint start = ((*hash->hash_func) (key)) % hash->table_size;
        guint i = start;
@@ -132,9 +132,9 @@ static int mono_g_hash_table_find_slot (MonoGHashTable *hash, const MonoObject *
        }
 
        gint32 max_length = UnlockedRead (&mono_g_hash_table_max_chain_length);
-       if (i > start && (i - start) > max_length)
+       if (i > start && (i - start) > GINT32_TO_UINT32(max_length))
                UnlockedWrite (&mono_g_hash_table_max_chain_length, i - start);
-       else if (i < start && (hash->table_size - (start - i)) > max_length)
+       else if (i < start && (hash->table_size - (start - i)) > GINT32_TO_UINT32(max_length))
                UnlockedWrite (&mono_g_hash_table_max_chain_length, hash->table_size - (start - i));
 
        return i;
@@ -199,7 +199,7 @@ do_rehash (void *_data)
 
        for (i = 0; i < current_size; i++) {
                if (old_keys [i]) {
-                       int slot = mono_g_hash_table_find_slot (hash, old_keys [i]);
+                       guint slot = mono_g_hash_table_find_slot (hash, old_keys [i]);
                        mono_g_hash_table_key_store (hash, slot, old_keys [i]);
                        mono_g_hash_table_value_store (hash, slot, old_values [i]);
                }
@@ -277,11 +277,9 @@ mono_g_hash_table_lookup (MonoGHashTable *hash, gconstpointer key)
 gboolean
 mono_g_hash_table_lookup_extended (MonoGHashTable *hash, gconstpointer key, gpointer *orig_key, gpointer *value)
 {
-       int slot;
-
        g_return_val_if_fail (hash != NULL, FALSE);
 
-       slot = mono_g_hash_table_find_slot (hash, (MonoObject*)key);
+       guint slot = mono_g_hash_table_find_slot (hash, (MonoObject*)key);
 
        if (hash->keys [slot]) {
                if (orig_key)
@@ -332,7 +330,7 @@ mono_g_hash_table_find (MonoGHashTable *hash, GHRFunc predicate, gpointer user_d
 gboolean
 mono_g_hash_table_remove (MonoGHashTable *hash, gconstpointer key)
 {
-       int slot, last_clear_slot;
+       guint slot, last_clear_slot;
 
        g_return_val_if_fail (hash != NULL, FALSE);
        slot = mono_g_hash_table_find_slot (hash, (MonoObject*)key);
@@ -438,13 +436,12 @@ static void
 mono_g_hash_table_insert_replace (MonoGHashTable *hash, gpointer key, gpointer value, gboolean replace)
 {
        MONO_REQ_GC_UNSAFE_MODE;
-       int slot;
        g_return_if_fail (hash != NULL);
 
        if (hash->in_use > (hash->table_size * HASH_TABLE_MAX_LOAD_FACTOR))
                rehash (hash);
 
-       slot = mono_g_hash_table_find_slot (hash, (MonoObject*)key);
+       guint slot = mono_g_hash_table_find_slot (hash, (MonoObject*)key);
 
        if (hash->keys [slot]) {
                if (replace) {
index e8c41f8..b02561b 100644 (file)
@@ -330,7 +330,7 @@ struct _MonoStringBuilder {
        int maxCapacity;
 };
 
-static inline int
+static inline guint
 mono_string_builder_capacity (MonoStringBuilderHandle sbh)
 {
        MonoStringBuilder *sb = MONO_HANDLE_RAW (sbh);
index d705937..df63130 100644 (file)
@@ -879,16 +879,16 @@ compute_class_bitmap (MonoClass *klass, gsize *bitmap, int size, int offset, int
                        case MONO_TYPE_ARRAY:
                                g_assert ((m_field_get_offset (field) % wordsize) == 0);
 
-                               g_assert (pos < size || pos <= max_size);
+                               g_assert (pos < GINT_TO_UINT32(size) || pos <= GINT_TO_UINT32(max_size));
                                bitmap [pos / BITMAP_EL_SIZE] |= ((gsize)1) << (pos % BITMAP_EL_SIZE);
-                               *max_set = MAX (*max_set, pos);
+                               *max_set = MAX (GINT_TO_UINT32(*max_set), pos);
                                break;
                        case MONO_TYPE_GENERICINST:
                                if (!mono_type_generic_inst_is_valuetype (type)) {
                                        g_assert ((m_field_get_offset (field) % wordsize) == 0);
 
                                        bitmap [pos / BITMAP_EL_SIZE] |= ((gsize)1) << (pos % BITMAP_EL_SIZE);
-                                       *max_set = MAX (*max_set, pos);
+                                       *max_set = MAX (GINT_TO_UINT32(*max_set), pos);
                                        break;
                                } else {
                                        /* fall through */
@@ -1462,10 +1462,9 @@ initialize_imt_slot (MonoVTable *vtable, MonoImtBuilderEntry *imt_builder_entry,
                        /* Collision, build the trampoline */
                        GPtrArray *imt_ir = imt_sort_slot_entries (imt_builder_entry);
                        gpointer result;
-                       int i;
                        result = imt_trampoline_builder (vtable,
                                (MonoIMTCheckItem**)imt_ir->pdata, imt_ir->len, fail_tramp);
-                       for (i = 0; i < imt_ir->len; ++i)
+                       for (guint i = 0; i < imt_ir->len; ++i)
                                g_free (g_ptr_array_index (imt_ir, i));
                        g_ptr_array_free (imt_ir, TRUE);
                        return result;
@@ -1821,7 +1820,7 @@ mono_method_add_generic_virtual_invocation (MonoVTable *vtable,
                                entries = next;
                        }
 
-                       for (int i = 0; i < sorted->len; ++i)
+                       for (guint i = 0; i < sorted->len; ++i)
                                g_free (g_ptr_array_index (sorted, i));
                        g_ptr_array_free (sorted, TRUE);
 
@@ -5748,7 +5747,7 @@ mono_array_new_jagged_helper (MonoClass *klass, int n, uintptr_t *lengths, int i
                // are also arrays and we allocate each one of them.
                MonoClass *element_class = m_class_get_element_class (klass);
                g_assert (m_class_get_rank (element_class) == 1);
-               for (int i = 0; i < lengths [index]; i++) {
+               for (uintptr_t i = 0; i < lengths [index]; i++) {
                        MonoArray *o = mono_array_new_jagged_helper (element_class, n, lengths, index + 1, error);
                        goto_if_nok (error, exit);
                        mono_array_setref_fast (ret, i, o);
@@ -6991,7 +6990,7 @@ mono_ldstr_utf8 (MonoImage *image, guint32 idx, MonoError *error)
                return NULL;
        }
        /* g_utf16_to_utf8 may not be able to complete the conversion (e.g. NULL values were found, #335488) */
-       if (len2 > written) {
+       if (len2 > GLONG_TO_ULONG(written)) {
                /* allocate the total length and copy the part of the string that has been converted */
                char *as2 = (char *)g_malloc0 (len2);
                memcpy (as2, as, written);
@@ -7054,7 +7053,7 @@ mono_utf16_to_utf8len (const gunichar2 *s, gsize slength, gsize *utf8_length, Mo
                return NULL;
        }
        /* g_utf16_to_utf8 may not be able to complete the conversion (e.g. NULL values were found, #335488) */
-       if (slength > written) {
+       if (slength > GLONG_TO_ULONG(written)) {
                /* allocate the total length and copy the part of the string that has been converted */
                char *as2 = (char *)g_malloc0 (slength);
                memcpy (as2, as, written);
index c2e3379..4d4f6c5 100644 (file)
@@ -281,9 +281,8 @@ module_object_construct (MonoClass *unused_klass, MonoImage *image, gpointer use
        if (image->assembly->image == image) {
                token  = mono_metadata_make_token (MONO_TABLE_MODULE, 1);
        } else {
-               int i;
                if (image->assembly->image->modules) {
-                       for (i = 0; i < image->assembly->image->module_count; i++) {
+                       for (guint32 i = 0; i < image->assembly->image->module_count; i++) {
                                if (image->assembly->image->modules [i] == image)
                                        token = mono_metadata_make_token (MONO_TABLE_MODULEREF, i + 1);
                        }
@@ -326,7 +325,7 @@ mono_module_file_get_object_handle (MonoImage *image, int table_index, MonoError
        MonoTableInfo *table;
        guint32 cols [MONO_FILE_SIZE];
        const char *name;
-       guint32 i, name_idx;
+       guint32 name_idx;
        const char *val;
 
        error_init (error);
@@ -335,7 +334,7 @@ mono_module_file_get_object_handle (MonoImage *image, int table_index, MonoError
        goto_if_nok (error, fail);
 
        table = &image->tables [MONO_TABLE_FILE];
-       g_assert (table_index < table_info_get_rows (table));
+       g_assert (GINT_TO_UINT32(table_index) < table_info_get_rows (table));
        mono_metadata_decode_row (table, table_index, cols, MONO_FILE_SIZE);
 
        MONO_HANDLE_SETVAL (res, image, MonoImage*, NULL);
@@ -347,8 +346,8 @@ mono_module_file_get_object_handle (MonoImage *image, int table_index, MonoError
 
        /* Check whenever the row has a corresponding row in the moduleref table */
        table = &image->tables [MONO_TABLE_MODULEREF];
-       int rows = table_info_get_rows (table);
-       for (i = 0; i < rows; ++i) {
+       guint32 rows = table_info_get_rows (table);
+       for (guint32 i = 0; i < rows; ++i) {
                name_idx = mono_metadata_decode_row_col (table, i, MONO_MODULEREF_NAME);
                val = mono_metadata_string_heap (image, name_idx);
                if (strcmp (val, name) == 0)
@@ -372,7 +371,6 @@ fail:
 static MonoType*
 mono_type_normalize (MonoType *type)
 {
-       int i;
        MonoGenericClass *gclass;
        MonoGenericInst *ginst;
        MonoClass *gtd;
@@ -392,7 +390,7 @@ mono_type_normalize (MonoType *type)
        gcontainer = mono_class_get_generic_container (gtd);
        argv = g_newa (MonoType*, ginst->type_argc);
 
-       for (i = 0; i < ginst->type_argc; ++i) {
+       for (guint i = 0; i < ginst->type_argc; ++i) {
                MonoType *t = ginst->type_argv [i], *norm;
                if (t->type != MONO_TYPE_VAR || t->data.generic_param->num != i || t->data.generic_param->owner != gcontainer)
                        is_denorm_gtd = FALSE;
@@ -2096,9 +2094,8 @@ mono_reflection_get_type_internal (MonoAssemblyLoadContext *alc, MonoImage *root
                MonoType **type_args = g_new0 (MonoType *, info->type_arguments->len);
                MonoReflectionTypeHandle the_type;
                MonoType *instance;
-               int i;
 
-               for (i = 0; i < info->type_arguments->len; i++) {
+               for (guint i = 0; i < info->type_arguments->len; i++) {
                        MonoTypeNameParse *subinfo = (MonoTypeNameParse *)g_ptr_array_index (info->type_arguments, i);
 
                        type_args [i] = _mono_reflection_get_type_from_info (alc, subinfo, rootimage, ignorecase, search_mscorlib, error);
@@ -2331,9 +2328,7 @@ mono_reflection_free_type_info (MonoTypeNameParse *info)
        g_list_free (info->nested);
 
        if (info->type_arguments) {
-               int i;
-
-               for (i = 0; i < info->type_arguments->len; i++) {
+               for (guint i = 0; i < info->type_arguments->len; i++) {
                        MonoTypeNameParse *subinfo = (MonoTypeNameParse *)g_ptr_array_index (info->type_arguments, i);
 
                        mono_reflection_free_type_info (subinfo);
@@ -2752,15 +2747,14 @@ mono_declsec_get_flags (MonoImage *image, guint32 token)
        MonoTableInfo *t = &image->tables [MONO_TABLE_DECLSECURITY];
        guint32 result = 0;
        guint32 action;
-       int i;
 
        /* HasSecurity can be present for other, not specially encoded, attributes,
           e.g. SuppressUnmanagedCodeSecurityAttribute */
        if (index < 0)
                return 0;
 
-       int rows = table_info_get_rows (t);
-       for (i = index; i < rows; i++) {
+       guint32 rows = table_info_get_rows (t);
+       for (guint32 i = index; i < rows; i++) {
                guint32 cols [MONO_DECL_SECURITY_SIZE];
 
                mono_metadata_decode_row (t, i, cols, MONO_DECL_SECURITY_SIZE);
@@ -2855,12 +2849,11 @@ fill_actions_from_index (MonoImage *image, guint32 token, MonoDeclSecurityAction
        MonoBoolean result = FALSE;
        MonoTableInfo *t;
        guint32 cols [MONO_DECL_SECURITY_SIZE];
-       int index = mono_metadata_declsec_from_index (image, token);
-       int i;
+       guint32 index = mono_metadata_declsec_from_index (image, token);
 
        t  = &image->tables [MONO_TABLE_DECLSECURITY];
-       int rows = table_info_get_rows (t);
-       for (i = index; i < rows; i++) {
+       guint32 rows = table_info_get_rows (t);
+       for (guint32 i = index; i < rows; i++) {
                mono_metadata_decode_row (t, i, cols, MONO_DECL_SECURITY_SIZE);
 
                if (cols [MONO_DECL_SECURITY_PARENT] != token)
@@ -3080,15 +3073,13 @@ static MonoBoolean
 get_declsec_action (MonoImage *image, guint32 token, guint32 action, MonoDeclSecurityEntry *entry)
 {
        guint32 cols [MONO_DECL_SECURITY_SIZE];
-       int i;
-
-       int index = mono_metadata_declsec_from_index (image, token);
+       guint32 index = mono_metadata_declsec_from_index (image, token);
        if (index == -1)
                return FALSE;
 
        MonoTableInfo *t =  &image->tables [MONO_TABLE_DECLSECURITY];
-       int rows = table_info_get_rows (t);
-       for (i = index; i < rows; i++) {
+       guint32 rows = table_info_get_rows (t);
+       for (guint32 i = index; i < rows; i++) {
                mono_metadata_decode_row (t, i, cols, MONO_DECL_SECURITY_SIZE);
 
                /* shortcut - index are ordered */
index 0c94e67..3ad08a4 100644 (file)
@@ -133,7 +133,6 @@ encode_generic_class (MonoDynamicImage *assembly, MonoGenericClass *gclass, SigB
 {
        MONO_REQ_GC_NEUTRAL_MODE;
 
-       int i;
        MonoGenericInst *class_inst;
        MonoClass *klass;
 
@@ -147,7 +146,7 @@ encode_generic_class (MonoDynamicImage *assembly, MonoGenericClass *gclass, SigB
        sigbuffer_add_value (buf, mono_dynimage_encode_typedef_or_ref_full (assembly, m_class_get_byval_arg (klass), FALSE));
 
        sigbuffer_add_value (buf, class_inst->type_argc);
-       for (i = 0; i < class_inst->type_argc; ++i)
+       for (guint i = 0; i < class_inst->type_argc; ++i)
                encode_type (assembly, class_inst->type_argv [i], buf);
 
 }
index de31cb1..6608396 100644 (file)
@@ -2801,7 +2801,7 @@ wait_for_tids (struct wait_data *wait, guint32 timeout, gboolean check_state_cha
        for( i = 0; i < wait->num; i++)
                mono_threads_close_thread_handle (wait->handles [i]);
 
-       if (ret >= MONO_THREAD_INFO_WAIT_RET_SUCCESS_0 && ret < (MONO_THREAD_INFO_WAIT_RET_SUCCESS_0 + wait->num)) {
+       if (ret >= MONO_THREAD_INFO_WAIT_RET_SUCCESS_0 && GINT_TO_UINT32(ret) < MONO_THREAD_INFO_WAIT_RET_SUCCESS_0 + wait->num) {
                MonoInternalThread *internal;
 
                internal = wait->threads [ret - MONO_THREAD_INFO_WAIT_RET_SUCCESS_0];
@@ -3289,12 +3289,12 @@ mono_thread_get_undeniable_exception (void)
 
 #if MONO_SMALL_CONFIG
 #define NUM_STATIC_DATA_IDX 4
-static const int static_data_size [NUM_STATIC_DATA_IDX] = {
+static const guint32 static_data_size [NUM_STATIC_DATA_IDX] = {
        64, 256, 1024, 4096
 };
 #else
 #define NUM_STATIC_DATA_IDX 8
-static const int static_data_size [NUM_STATIC_DATA_IDX] = {
+static const guint32 static_data_size [NUM_STATIC_DATA_IDX] = {
        1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216
 };
 #endif
@@ -3336,7 +3336,6 @@ static void
 mono_alloc_static_data (gpointer **static_data_ptr, guint32 offset, void *alloc_key)
 {
        guint idx = ACCESS_SPECIAL_STATIC_OFFSET (offset, index);
-       int i;
 
        gpointer* static_data = *static_data_ptr;
        if (!static_data) {
@@ -3355,7 +3354,7 @@ mono_alloc_static_data (gpointer **static_data_ptr, guint32 offset, void *alloc_
                static_data [0] = static_data;
        }
 
-       for (i = 1; i <= idx; ++i) {
+       for (guint i = 1; i <= idx; ++i) {
                if (static_data [i])
                        continue;
 
@@ -3372,8 +3371,7 @@ mono_alloc_static_data (gpointer **static_data_ptr, guint32 offset, void *alloc_
 static void
 mono_free_static_data (gpointer* static_data)
 {
-       int i;
-       for (i = 1; i < NUM_STATIC_DATA_IDX; ++i) {
+       for (guint i = 1; i < NUM_STATIC_DATA_IDX; ++i) {
                gpointer p = static_data [i];
                if (!p)
                        continue;
@@ -3496,7 +3494,7 @@ clear_reference_bitmap (MonoBitSet **sets, guint32 offset, guint32 size)
        offset = ACCESS_SPECIAL_STATIC_OFFSET (offset, offset);
        offset /= sizeof (uintptr_t);
        /* offset is now the bitmap offset */
-       for (int i = 0; i < size / sizeof (uintptr_t); i++)
+       for (guint i = 0; i < size / sizeof (uintptr_t); i++)
                mono_bitset_clear_fast (rb, offset + i);
 }
 
@@ -4860,10 +4858,8 @@ mono_thread_internal_describe (MonoInternalThread *internal, GString *text)
        }
 
        if (internal->owned_mutexes) {
-               int i;
-
                g_string_append (text, ", owns : [");
-               for (i = 0; i < internal->owned_mutexes->len; i++)
+               for (guint i = 0; i < internal->owned_mutexes->len; i++)
                        g_string_append_printf (text, i == 0 ? "%p" : ", %p", g_ptr_array_index (internal->owned_mutexes, i));
                g_string_append (text, "]");
        }
index ee236f6..510e149 100644 (file)
@@ -1307,7 +1307,6 @@ mono_perform_abc_removal (MonoCompile *cfg)
 {
        MonoVariableRelationsEvaluationArea area;
        MonoBasicBlock *bb;
-       int i;
 
        verbose_level = cfg->verbose_level;
 
@@ -1324,7 +1323,7 @@ mono_perform_abc_removal (MonoCompile *cfg)
        area.variable_value_kind = (MonoIntegerValueKind *)
                mono_mempool_alloc (cfg->mempool, sizeof (MonoIntegerValueKind) * (cfg->next_vreg));
        area.defs = (MonoInst **)mono_mempool_alloc (cfg->mempool, sizeof (MonoInst*) * cfg->next_vreg);
-       for (i = 0; i < cfg->next_vreg; i++) {
+       for (guint32 i = 0; i < cfg->next_vreg; i++) {
                area.variable_value_kind [i] = MONO_UNKNOWN_INTEGER_VALUE;
                area.relations [i].relation = MONO_EQ_RELATION;
                area.relations [i].relation_is_static_definition = TRUE;
@@ -1410,7 +1409,7 @@ mono_perform_abc_removal (MonoCompile *cfg)
        }
 
        /* Add symmetric relations */
-       for (i = 0; i < cfg->next_vreg; i++) {
+       for (guint32 i = 0; i < cfg->next_vreg; i++) {
                if (area.relations [i].related_value.type == MONO_VARIABLE_SUMMARIZED_VALUE) {
                        int related_index = cfg->next_vreg + i;
                        int related_variable = area.relations [i].related_value.value.variable.variable;
index fa4627c..2e0d450 100644 (file)
@@ -321,14 +321,11 @@ handle_instruction:
 static gboolean
 recompute_aliased_variables (MonoCompile *cfg, int *restored_vars)
 {
-       int i;
-       MonoBasicBlock *bb;
-       MonoInst *ins;
        int kills = 0;
        int adds = 0;
        *restored_vars = 0;
 
-       for (i = 0; i < cfg->num_varinfo; i++) {
+       for (guint i = 0; i < cfg->num_varinfo; i++) {
                MonoInst *var = cfg->varinfo [i];
                if (var->flags & MONO_INST_INDIRECT) {
                        if (cfg->verbose_level > 2) {
@@ -342,8 +339,8 @@ recompute_aliased_variables (MonoCompile *cfg, int *restored_vars)
        if (!kills)
                return FALSE;
 
-       for (bb = cfg->bb_entry; bb; bb = bb->next_bb) {
-               for (ins = bb->code; ins; ins = ins->next) {
+       for (MonoBasicBlock *bb = cfg->bb_entry; bb; bb = bb->next_bb) {
+               for (MonoInst *ins = bb->code; ins; ins = ins->next) {
                        if (ins->opcode == OP_LDADDR) {
                                MonoInst *var;
 
index 6f71ece..1d473d1 100644 (file)
@@ -41,7 +41,6 @@ mono_branch_optimize_exception_target (MonoCompile *cfg, MonoBasicBlock *bb, con
        MonoMethodHeader *header = cfg->header;
        MonoExceptionClause *clause;
        MonoClass *exclass;
-       int i;
 
        if (!(cfg->opt & MONO_OPT_EXCEPTION))
                return NULL;
@@ -51,7 +50,7 @@ mono_branch_optimize_exception_target (MonoCompile *cfg, MonoBasicBlock *bb, con
 
        exclass = mono_class_load_from_name (mono_get_corlib (), "System", exname);
        /* search for the handler */
-       for (i = 0; i < header->num_clauses; ++i) {
+       for (guint i = 0; i < header->num_clauses; ++i) {
                clause = &header->clauses [i];
                if (MONO_OFFSET_IN_CLAUSE (clause, bb->real_offset)) {
                        if (clause->flags == MONO_EXCEPTION_CLAUSE_NONE && clause->data.catch_class && mono_class_is_assignable_from_internal (clause->data.catch_class, exclass)) {
index 9c1480b..34c6609 100644 (file)
@@ -470,7 +470,6 @@ mini_regression_step (MonoImage *image, int verbose, int *total_run, int *total,
        int result, expected, failed, cfailed, run, code_size;
        double elapsed, comp_time, start_time;
        char *n;
-       int i;
 
        mono_set_defaults (verbose, opt_flags);
        n = mono_opt_descr (opt_flags);
@@ -489,7 +488,7 @@ mini_regression_step (MonoImage *image, int verbose, int *total_run, int *total,
        g_timer_start (timer);
        if (mini_stats_fd)
                fprintf (mini_stats_fd, "[");
-       for (i = 0; i < mono_image_get_table_rows (image, MONO_TABLE_METHOD); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (&image->tables [MONO_TABLE_METHOD]); ++i) {
                ERROR_DECL (error);
                MonoMethod *method = mono_get_method_checked (image, MONO_TOKEN_METHOD_DEF | (i + 1), NULL, NULL, error);
                if (!method) {
@@ -589,7 +588,6 @@ mini_regression_step (MonoImage *image, int verbose, int *total_run, int *total,
 static int
 mini_regression (MonoImage *image, int verbose, int *total_run)
 {
-       guint32 i, opt;
        MonoMethod *method;
        char *n;
        GTimer *timer = g_timer_new ();
@@ -603,7 +601,7 @@ mini_regression (MonoImage *image, int verbose, int *total_run)
                fprintf (mini_stats_fd, "$stattitle = \'Mono Benchmark Results (various optimizations)\';\n");
 
                fprintf (mini_stats_fd, "$graph->set_legend(qw(");
-               for (opt = 0; opt < G_N_ELEMENTS (opt_sets); opt++) {
+               for (guint32 opt = 0; opt < G_N_ELEMENTS (opt_sets); opt++) {
                        guint32 opt_flags = opt_sets [opt];
                        n = mono_opt_descr (opt_flags);
                        if (!n [0])
@@ -621,7 +619,7 @@ mini_regression (MonoImage *image, int verbose, int *total_run)
        }
 
        /* load the metadata */
-       for (i = 0; i < mono_image_get_table_rows (image, MONO_TABLE_METHOD); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (&image->tables [MONO_TABLE_METHOD]); ++i) {
                ERROR_DECL (error);
                method = mono_get_method_checked (image, MONO_TOKEN_METHOD_DEF | (i + 1), NULL, NULL, error);
                if (!method) {
@@ -664,7 +662,7 @@ mini_regression (MonoImage *image, int verbose, int *total_run)
                                return total;
                }
        } else {
-               for (opt = 0; opt < G_N_ELEMENTS (opt_sets); ++opt) {
+               for (guint32 opt = 0; opt < G_N_ELEMENTS (opt_sets); ++opt) {
                        /* aot-tests.cs need OPT_INTRINS enabled */
                        if (!strcmp ("aot-tests", image->assembly_name))
                                if (!(opt_sets [opt] & MONO_OPT_INTRINS))
@@ -723,7 +721,6 @@ interp_regression_step (MonoImage *image, int verbose, int *total_run, int *tota
 {
        int result, expected, failed, cfailed, run;
        double elapsed, transform_time;
-       int i;
        MonoObject *result_obj;
        int local_skip_index = 0;
 
@@ -742,7 +739,7 @@ interp_regression_step (MonoImage *image, int verbose, int *total_run, int *tota
        mini_get_interp_callbacks ()->invalidate_transformed ();
 
        g_timer_start (timer);
-       for (i = 0; i < mono_image_get_table_rows (image, MONO_TABLE_METHOD); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (&image->tables [MONO_TABLE_METHOD]); ++i) {
                ERROR_DECL (error);
                MonoMethod *method = mono_get_method_checked (image, MONO_TOKEN_METHOD_DEF | (i + 1), NULL, NULL, error);
                if (!method) {
@@ -803,11 +800,10 @@ interp_regression (MonoImage *image, int verbose, int *total_run)
 {
        MonoMethod *method;
        GTimer *timer = g_timer_new ();
-       guint32 i;
        int total;
 
        /* load the metadata */
-       for (i = 0; i < mono_image_get_table_rows (image, MONO_TABLE_METHOD); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (&image->tables [MONO_TABLE_METHOD]); ++i) {
                ERROR_DECL (error);
                method = mono_get_method_checked (image, MONO_TOKEN_METHOD_DEF | (i + 1), NULL, NULL, error);
                if (!method) {
@@ -1206,9 +1202,9 @@ compile_all_methods_thread_main_inner (CompileAllThreadArgs *args)
        MonoImage *image = mono_assembly_get_image_internal (ass);
        MonoMethod *method;
        MonoCompile *cfg;
-       int i, count = 0, fail_count = 0;
+       int count = 0, fail_count = 0;
 
-       for (i = 0; i < mono_image_get_table_rows (image, MONO_TABLE_METHOD); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (&image->tables [MONO_TABLE_METHOD]); ++i) {
                ERROR_DECL (error);
                guint32 token = MONO_TOKEN_METHOD_DEF | (i + 1);
                MonoMethodSignature *sig;
@@ -3023,7 +3019,6 @@ merge_parsed_options (GPtrArray *parsed_options, int *ref_argc, char **ref_argv
                int new_argc = parsed_options->len + argc;
                char **new_argv = g_new (char *, new_argc + 1);
                guint i;
-               guint j;
 
                new_argv [0] = argv [0];
 
@@ -3034,10 +3029,10 @@ merge_parsed_options (GPtrArray *parsed_options, int *ref_argc, char **ref_argv
                                new_argv [i+1] = (char *)g_ptr_array_index (parsed_options, i);
                        i++;
                }
-               for (j = 1; j < argc; j++)
+               for (int j = 1; j < argc; j++)
                        new_argv [i++] = argv [j];
                if (!prepend){
-                       for (j = 0; j < parsed_options->len; j++)
+                       for (guint j = 0; j < parsed_options->len; j++)
                                new_argv [i++] = (char *)g_ptr_array_index (parsed_options, j);
                }
                new_argv [i] = NULL;
index 50a7cfd..bf190ce 100644 (file)
@@ -1584,7 +1584,7 @@ mono_arch_unwindinfo_find_rt_func_in_table (const gpointer code, gsize code_size
                g_assert_checked (found_entry->end_range >= begin_range && found_entry->end_range >= end_range);
                g_assert_checked (found_entry->rt_funcs != NULL);
 
-               for (int i = 0; i < found_entry->rt_funcs_current_count; ++i) {
+               for (DWORD i = 0; i < found_entry->rt_funcs_current_count; ++i) {
                        PRUNTIME_FUNCTION current_rt_func = (PRUNTIME_FUNCTION)(&found_entry->rt_funcs [i]);
 
                        // Is this our RT function entry?
@@ -1621,7 +1621,7 @@ validate_rt_funcs_in_table_no_lock (DynamicFunctionTableEntry *entry)
 
        PRUNTIME_FUNCTION current_rt_func = NULL;
        PRUNTIME_FUNCTION previous_rt_func = NULL;
-       for (int i = 0; i < entry->rt_funcs_current_count; ++i) {
+       for (DWORD i = 0; i < entry->rt_funcs_current_count; ++i) {
                current_rt_func = &(entry->rt_funcs [i]);
 
                g_assert_checked (current_rt_func->BeginAddress < current_rt_func->EndAddress);
index b48afe7..025664e 100644 (file)
@@ -46,7 +46,7 @@ static void
 dtree_emit_one_loop_level (MonoCompile *cfg, FILE *fp, MonoBasicBlock *h)
 {
        MonoBasicBlock *bb;
-       int i, level = 0;
+       gint8 level = 0;
 
        if (h) {
                level = h->nesting;
@@ -54,7 +54,7 @@ dtree_emit_one_loop_level (MonoCompile *cfg, FILE *fp, MonoBasicBlock *h)
                fprintf (fp, "label=\"loop_%d\"\n", h->block_num);
        }
 
-       for (i = 1; i < cfg->num_bblocks; ++i) {
+       for (guint i = 1; i < cfg->num_bblocks; ++i) {
                bb = cfg->bblocks [i];
 
                if (!h || (g_list_find (h->loop_blocks, bb) && bb != h)) {
index dd801c1..ca7df28 100644 (file)
@@ -91,7 +91,7 @@ void
 mono_blockset_print (MonoCompile *cfg, MonoBitSet *set, const char *name, guint idom)
 {
 #ifndef DISABLE_LOGGING
-       int i;
+       guint i;
 
        if (name)
                g_print ("%s:", name);
index 02958a4..421ee54 100644 (file)
@@ -969,7 +969,7 @@ mini_emit_bounds_check_offset (MonoCompile *cfg, int array_reg, int array_length
                if (!(cfg->opt & MONO_OPT_ABCREM)) {
                        MONO_EMIT_NULL_CHECK (cfg, array_reg, FALSE);
                        if (COMPILE_LLVM (cfg))
-                               MONO_EMIT_DEFAULT_BOUNDS_CHECK ((cfg), (array_reg), (array_length_offset), (index_reg), TRUE, ex_name);
+                               MONO_EMIT_DEFAULT_BOUNDS_CHECK ((cfg), (array_reg), GINT_TO_UINT(array_length_offset), (index_reg), TRUE, ex_name);
                        else
                                MONO_ARCH_EMIT_BOUNDS_CHECK ((cfg), (array_reg), (array_length_offset), (index_reg), ex_name);
                } else {
index f3679d3..3684185 100644 (file)
@@ -206,7 +206,7 @@ mono_linear_scan (MonoCompile *cfg, GList *vars, GList *regs, regmask_t *used_ma
                vmv = (MonoMethodVar *)l->data;
 
                if (vmv->reg >= 0)  {
-                       if ((gains [vmv->reg] > mono_arch_regalloc_cost (cfg, vmv)) && (cfg->varinfo [vmv->idx]->opcode != OP_REGVAR)) {
+                       if ((GINT_TO_UINT32(gains [vmv->reg]) > mono_arch_regalloc_cost (cfg, vmv)) && (cfg->varinfo [vmv->idx]->opcode != OP_REGVAR)) {
                                if (cfg->verbose_level > 2) {
                                        printf ("ALLOCATED R%d(%d) TO HREG %d COST %d\n", cfg->varinfo [vmv->idx]->dreg, vmv->idx, vmv->reg, vmv->spill_costs);
                                }
@@ -482,7 +482,7 @@ mono_linear_scan2 (MonoCompile *cfg, GList *vars, GList *regs, regmask_t *used_m
                        /* During allocation, vmv->reg is an index into the regs list */
                        vmv->reg = GPOINTER_TO_INT (g_list_nth_data (regs, vmv->reg));
 
-                       if ((gains [reg_index] > regalloc_cost (cfg, vmv)) && (cfg->varinfo [vmv->idx]->opcode != OP_REGVAR)) {
+                       if ((GINT_TO_UINT32(gains [reg_index]) > regalloc_cost (cfg, vmv)) && (cfg->varinfo [vmv->idx]->opcode != OP_REGVAR)) {
                                if (cfg->verbose_level > 2)
                                        printf ("REGVAR R%d G%d C%d %s\n", cfg->varinfo [vmv->idx]->dreg, gains [reg_index], regalloc_cost (cfg, vmv), mono_arch_regname (vmv->reg));
                                cfg->varinfo [vmv->idx]->opcode = OP_REGVAR;
index 8eb06c4..8d2a3be 100644 (file)
@@ -416,7 +416,7 @@ mono_lldb_save_method_info (MonoCompile *cfg)
        Buffer tmpbuf;
        Buffer *buf = &tmpbuf;
        MonoDebugMethodInfo *minfo;
-       int i, j, n_il_offsets;
+       int n_il_offsets;
        int *source_files;
        GPtrArray *source_file_list;
        MonoSymSeqPoint *sym_seq_points;
@@ -466,17 +466,17 @@ mono_lldb_save_method_info (MonoCompile *cfg)
        if (minfo && seq_points) {
                mono_debug_get_seq_points (minfo, NULL, &source_file_list, &source_files, &sym_seq_points, &n_il_offsets);
                buffer_add_int (buf, source_file_list->len);
-               for (i = 0; i < source_file_list->len; ++i) {
+               for (guint i = 0; i < source_file_list->len; ++i) {
                        MonoDebugSourceInfo *sinfo = (MonoDebugSourceInfo *)g_ptr_array_index (source_file_list, i);
                        buffer_add_string (buf, sinfo->source_file);
-                       for (j = 0; j < 16; ++j)
+                       for (guint j = 0; j < 16; ++j)
                                buffer_add_byte (buf, sinfo->hash [j]);
                }
 
                // The sym seq points are ordered by il offset, need to order them by address
                int skipped = 0;
                locs = g_new0 (FullSeqPoint, n_il_offsets);
-               for (i = 0; i < n_il_offsets; ++i) {
+               for (int i = 0; i < n_il_offsets; ++i) {
                        locs [i].sp = sym_seq_points [i];
 
                        // FIXME: O(n^2)
@@ -492,7 +492,7 @@ mono_lldb_save_method_info (MonoCompile *cfg)
 
                n_il_offsets -= skipped;
                buffer_add_int (buf, n_il_offsets);
-               for (i = 0; i < n_il_offsets; ++i) {
+               for (int i = 0; i < n_il_offsets; ++i) {
                        MonoSymSeqPoint *sp = &locs [i].sp;
 
                        //printf ("%s %x %d %d\n", cfg->method->name, locs [i].native_offset, sp->il_offset, sp->line);
index b2a2021..0aa2f15 100644 (file)
@@ -264,7 +264,6 @@ mono_arch_get_gsharedvt_call_info (MonoMemoryManager *mem_manager, gpointer addr
        GSharedVtCallInfo *info;
        CallInfo *caller_cinfo, *callee_cinfo;
        MonoMethodSignature *caller_sig, *callee_sig;
-       int aindex, i;
        gboolean var_ret = FALSE;
        CallInfo *cinfo, *gcinfo;
        MonoMethodSignature *sig;
@@ -318,7 +317,7 @@ mono_arch_get_gsharedvt_call_info (MonoMemoryManager *mem_manager, gpointer addr
         */
        map = g_ptr_array_new ();
 
-       for (aindex = 0; aindex < cinfo->nargs; ++aindex) {
+       for (int aindex = 0; aindex < cinfo->nargs; ++aindex) {
                ArgInfo *src_info = &caller_cinfo->args [aindex];
                ArgInfo *dst_info = &callee_cinfo->args [aindex];
                int *src = NULL, *dst = NULL;
@@ -398,7 +397,7 @@ mono_arch_get_gsharedvt_call_info (MonoMemoryManager *mem_manager, gpointer addr
                nslots = MIN (nsrc, ndst);
                DEBUG_AMD64_GSHAREDVT_PRINT ("nsrc %d ndst %d\n", nsrc, ndst);
 
-               for (i = 0; i < nslots; ++i)
+               for (int i = 0; i < nslots; ++i)
                        add_to_map (map, src [i], dst [i]);
 
                g_free (src);
@@ -431,7 +430,7 @@ mono_arch_get_gsharedvt_call_info (MonoMemoryManager *mem_manager, gpointer addr
 
 #ifdef DEBUG_AMD64_GSHAREDVT
        printf ("final map:\n");
-       for (i = 0; i < map->len; i += 2) {
+       for (guint i = 0; i < map->len; i += 2) {
                printf ("\t[%d] src %x dst %x\n ",
                        i / 2,
                        GPOINTER_TO_UINT (g_ptr_array_index (map, i)),
@@ -441,7 +440,7 @@ mono_arch_get_gsharedvt_call_info (MonoMemoryManager *mem_manager, gpointer addr
 
        info->vcall_offset = vcall_offset;
        info->map_count = map->len / 2;
-       for (i = 0; i < map->len; ++i)
+       for (guint i = 0; i < map->len; ++i)
                info->map [i] = GPOINTER_TO_UINT (g_ptr_array_index (map, i));
        g_ptr_array_free (map, TRUE);
 
index 4be892f..9f28d9c 100644 (file)
@@ -41,7 +41,7 @@ emit_fill_call_ctx (MonoCompile *cfg, MonoInst *method, MonoInst *ret)
        MONO_ADD_INS (cfg->cbb, args_alloc);
        MONO_EMIT_NEW_STORE_MEMBASE (cfg, OP_STORE_MEMBASE_REG, alloc->dreg, MONO_STRUCT_OFFSET (MonoProfilerCallContext, args), args_alloc->dreg);
 
-       for (int i = 0; i < sig->hasthis + sig->param_count; ++i) {
+       for (guint i = 0; i < sig->hasthis + sig->param_count; ++i) {
                NEW_VARLOADA (cfg, ins, cfg->args [i], cfg->args [i]->inst_vtype);
                MONO_ADD_INS (cfg->cbb, ins);
 
index a4f782a..e87480e 100644 (file)
@@ -1867,13 +1867,12 @@ void
 mini_init_gsctx (MonoMemPool *mp, MonoGenericContext *context, MonoGenericSharingContext *gsctx)
 {
        MonoGenericInst *inst;
-       int i;
 
        memset (gsctx, 0, sizeof (MonoGenericSharingContext));
 
        if (context && context->class_inst) {
                inst = context->class_inst;
-               for (i = 0; i < inst->type_argc; ++i) {
+               for (guint i = 0; i < inst->type_argc; ++i) {
                        MonoType *type = inst->type_argv [i];
 
                        if (mini_is_gsharedvt_gparam (type))
@@ -1883,7 +1882,7 @@ mini_init_gsctx (MonoMemPool *mp, MonoGenericContext *context, MonoGenericSharin
        if (context && context->method_inst) {
                inst = context->method_inst;
 
-               for (i = 0; i < inst->type_argc; ++i) {
+               for (guint i = 0; i < inst->type_argc; ++i) {
                        MonoType *type = inst->type_argv [i];
 
                        if (mini_is_gsharedvt_gparam (type))
@@ -2253,8 +2252,7 @@ unlock_compilation_data (void)
 static JitCompilationEntry*
 find_method (MonoMethod *method)
 {
-       int i;
-       for (i = 0; i < compilation_data.in_flight_methods->len; ++i){
+       for (guint i = 0; i < compilation_data.in_flight_methods->len; ++i){
                JitCompilationEntry *e = (JitCompilationEntry*)compilation_data.in_flight_methods->pdata [i];
                if (e->method == method)
                        return e;
@@ -5157,7 +5155,7 @@ mono_precompile_assembly (MonoAssembly *ass, void *user_data)
        GHashTable *assemblies = (GHashTable*)user_data;
        MonoImage *image = mono_assembly_get_image_internal (ass);
        MonoMethod *method, *invoke;
-       int i, count = 0;
+       int count = 0;
 
        if (g_hash_table_lookup (assemblies, ass))
                return;
@@ -5167,7 +5165,7 @@ mono_precompile_assembly (MonoAssembly *ass, void *user_data)
        if (mini_verbose > 0)
                printf ("PRECOMPILE: %s.\n", mono_image_get_filename (image));
 
-       for (i = 0; i < mono_image_get_table_rows (image, MONO_TABLE_METHOD); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (&image->tables [MONO_TABLE_METHOD]); ++i) {
                ERROR_DECL (error);
 
                method = mono_get_method_checked (image, MONO_TOKEN_METHOD_DEF | (i + 1), NULL, NULL, error);
@@ -5199,7 +5197,7 @@ mono_precompile_assembly (MonoAssembly *ass, void *user_data)
        }
 
        /* Load and precompile referenced assemblies as well */
-       for (i = 0; i < mono_image_get_table_rows (image, MONO_TABLE_ASSEMBLYREF); ++i) {
+       for (guint32 i = 0; i < table_info_get_rows (&image->tables [MONO_TABLE_ASSEMBLYREF]); ++i) {
                mono_assembly_load_reference (image, i);
                if (image->references [i])
                        mono_precompile_assembly (image->references [i], assemblies);
index 1dbb295..67c90dd 100644 (file)
@@ -4405,7 +4405,7 @@ mini_class_is_system_array (MonoClass *klass)
  *
  *   query pagesize used to determine if an implicit NRE can be used
  */
-int
+guint
 mono_target_pagesize (void)
 {
        /* We could query the system's pagesize via mono_pagesize (), however there
index cfe3d92..72c4623 100644 (file)
@@ -1287,8 +1287,8 @@ typedef enum {
 
 #define vreg_is_volatile(cfg, vreg) (G_UNLIKELY (get_vreg_to_inst ((cfg), (vreg)) && (get_vreg_to_inst ((cfg), (vreg))->flags & (MONO_INST_VOLATILE|MONO_INST_INDIRECT))))
 
-#define vreg_is_ref(cfg, vreg) ((vreg) < (cfg)->vreg_is_ref_len ? (cfg)->vreg_is_ref [(vreg)] : 0)
-#define vreg_is_mp(cfg, vreg) ((vreg) < (cfg)->vreg_is_mp_len ? (cfg)->vreg_is_mp [(vreg)] : 0)
+#define vreg_is_ref(cfg, vreg) (GINT_TO_UINT32(vreg) < (cfg)->vreg_is_ref_len ? (cfg)->vreg_is_ref [(vreg)] : 0)
+#define vreg_is_mp(cfg, vreg) (GINT_TO_UINT32(vreg) < (cfg)->vreg_is_mp_len ? (cfg)->vreg_is_mp [(vreg)] : 0)
 
 /*
  * Control Flow Graph and compilation unit information
@@ -2208,7 +2208,7 @@ MonoInst* mono_emit_jit_icall_id (MonoCompile *cfg, MonoJitICallId jit_icall_id,
 MonoInst* mono_emit_jit_icall_by_info (MonoCompile *cfg, int il_offset, MonoJitICallInfo *info, MonoInst **args);
 MonoInst* mono_emit_method_call (MonoCompile *cfg, MonoMethod *method, MonoInst **args, MonoInst *this_ins);
 gboolean  mini_should_insert_breakpoint (MonoMethod *method);
-int mono_target_pagesize (void);
+guint     mono_target_pagesize (void);
 
 gboolean  mini_class_is_system_array (MonoClass *klass);
 
index 83916e8..1445942 100644 (file)
@@ -113,7 +113,7 @@ mono_core_preload_hook (MonoAssemblyLoadContext *alc, MonoAssemblyName *aname, c
        size_t basename_len;
        basename_len = strlen (basename);
 
-       for (int i = 0; i < a->assembly_count; ++i) {
+       for (guint32 i = 0; i < a->assembly_count; ++i) {
                if (basename_len == a->basename_lens [i] && !g_strncasecmp (basename, a->basenames [i], a->basename_lens [i])) {
                        MonoAssemblyOpenRequest req;
                        mono_assembly_request_prepare_open (&req, default_alc);
index b7b34e9..b998c6c 100644 (file)
@@ -104,7 +104,7 @@ mono_save_seq_point_info (MonoCompile *cfg, MonoJitInfo *jinfo)
        MonoBasicBlock *bb;
        GSList *bb_seq_points, *l;
        MonoInst *last;
-       int i, seq_info_size;
+       int seq_info_size;
        GSList **next = NULL;
        SeqPoint* seq_points;
        GByteArray* array;
@@ -115,7 +115,7 @@ mono_save_seq_point_info (MonoCompile *cfg, MonoJitInfo *jinfo)
 
        seq_points = g_new0 (SeqPoint, cfg->seq_points->len);
 
-       for (i = 0; i < cfg->seq_points->len; ++i) {
+       for (guint i = 0; i < cfg->seq_points->len; ++i) {
                SeqPoint *sp = &seq_points [i];
                MonoInst *ins = (MonoInst *)g_ptr_array_index (cfg->seq_points, i);
                sp->il_offset = GTMREG_TO_INT (ins->inst_imm);
@@ -185,7 +185,7 @@ mono_save_seq_point_info (MonoCompile *cfg, MonoJitInfo *jinfo)
                if (cfg->verbose_level > 2) {
                        printf ("\nSEQ POINT MAP: \n");
 
-                       for (i = 0; i < cfg->seq_points->len; ++i) {
+                       for (guint i = 0; i < cfg->seq_points->len; ++i) {
                                SeqPoint *sp = &seq_points [i];
 
                                if (!next [i])
@@ -207,7 +207,7 @@ mono_save_seq_point_info (MonoCompile *cfg, MonoJitInfo *jinfo)
                SeqPoint zero_seq_point = {0};
                SeqPoint* last_seq_point = &zero_seq_point;
 
-               for (i = 0; i < cfg->seq_points->len; ++i) {
+               for (guint i = 0; i < cfg->seq_points->len; ++i) {
                        SeqPoint *sp = &seq_points [i];
                        GSList* next_list = NULL;
 
index 320330d..409799b 100644 (file)
@@ -393,7 +393,7 @@ guint8*
 mono_unwind_ops_encode_full (GSList *unwind_ops, guint32 *out_len, gboolean enable_extensions)
 {
        MonoUnwindOp *op;
-       int loc = 0;
+       guint32 loc = 0;
        guint8 buf [4096];
        guint8 *p, *res;
 
index 45bed10..44d157e 100644 (file)
@@ -115,7 +115,7 @@ match_option (const char *arg, const char *opt_name, const char **rval)
                if (!end)
                        return !strcmp (arg, opt_name);
 
-               if (strncmp (arg, opt_name, strlen (opt_name)) || (end - arg) > strlen (opt_name) + 1)
+               if (strncmp (arg, opt_name, strlen (opt_name)) || (end - arg) > GSIZE_TO_SSIZE(strlen (opt_name)) + 1)
                        return FALSE;
                *rval = end + 1;
                return TRUE;
@@ -526,12 +526,12 @@ add_type (MonoProfiler *prof, MonoType *type)
 static int
 add_ginst (MonoProfiler *prof, MonoGenericInst *inst)
 {
-       int i, id;
+       int id;
        int *ids;
 
        // FIXME: Cache
        ids = g_malloc0 (inst->type_argc * sizeof (int));
-       for (i = 0; i < inst->type_argc; ++i) {
+       for (guint i = 0; i < inst->type_argc; ++i) {
                MonoType *t = inst->type_argv [i];
                ids [i] = add_type (prof, t);
                if (ids [i] == -1) {
@@ -542,7 +542,7 @@ add_ginst (MonoProfiler *prof, MonoGenericInst *inst)
        id = prof->id ++;
        emit_record (prof, AOTPROF_RECORD_GINST, id);
        emit_int32 (prof, inst->type_argc);
-       for (i = 0; i < inst->type_argc; ++i)
+       for (guint i = 0; i < inst->type_argc; ++i)
                emit_int32 (prof, ids [i]);
        g_free (ids);
 
@@ -631,7 +631,6 @@ prof_save (MonoProfiler *prof, FILE* file)
        if (already_shutdown)
                return;
 
-       int mindex;
        char magic [32];
 
        prof->buf_len = 4096;
@@ -645,7 +644,7 @@ prof_save (MonoProfiler *prof, FILE* file)
 
        GHashTable *all_methods = g_hash_table_new (NULL, NULL);
        mono_os_mutex_lock (&prof->mutex);
-       for (mindex = 0; mindex < prof->methods->len; ++mindex) {
+       for (guint mindex = 0; mindex < prof->methods->len; ++mindex) {
            MonoMethod *m = (MonoMethod*)g_ptr_array_index (prof->methods, mindex);
 
                if (!mono_method_get_token (m))
index 90b7e8d..e90731c 100644 (file)
@@ -526,11 +526,11 @@ mono_lock_free_free (gpointer ptr, size_t block_size)
 static void
 descriptor_check_consistency (Descriptor *desc, gboolean print)
 {
-       int count = desc->anchor.data.count;
-       int max_count = LOCK_FREE_ALLOC_SB_USABLE_SIZE (desc->block_size) / desc->slot_size;
+       guint32 count = desc->anchor.data.count;
+       guint32 max_count = LOCK_FREE_ALLOC_SB_USABLE_SIZE (desc->block_size) / desc->slot_size;
        gboolean* linked = g_newa (gboolean, max_count);
-       int i, last;
-       unsigned int index;
+       int last;
+       guint32 index;
 
 #ifndef DESC_AVAIL_DUMMY
        Descriptor *avail;
@@ -564,12 +564,12 @@ descriptor_check_consistency (Descriptor *desc, gboolean print)
                g_assert_OR_PRINT (FALSE, "invalid state\n");
        }
 
-       for (i = 0; i < max_count; ++i)
+       for (guint32 i = 0; i < max_count; ++i)
                linked [i] = FALSE;
 
        index = desc->anchor.data.avail;
        last = -1;
-       for (i = 0; i < count; ++i) {
+       for (guint32 i = 0; i < count; ++i) {
                gpointer addr = (char*)desc->sb + index * desc->slot_size;
                g_assert_OR_PRINT (index >= 0 && index < max_count,
                                "index %d for %dth available slot, linked from %d, not in range [0 .. %d)\n",
index ab14f4f..00e07a5 100644 (file)
@@ -35,7 +35,7 @@ mono_flight_recorder_iter_init (MonoFlightRecorder *recorder, MonoFlightRecorder
        if (recorder->cursor == MONO_FLIGHT_RECORDER_SENTINEL) {
                iter->lowest_index = MONO_FLIGHT_RECORDER_SENTINEL;
                iter->highest_index = MONO_FLIGHT_RECORDER_SENTINEL;
-       } else if (recorder->cursor >= recorder->max_count) {
+       } else if (GINTPTR_TO_SIZE(recorder->cursor) >= recorder->max_count) {
                // Ring buffer has wrapped around
                // So the item *after* the highest index is the lowest index
                iter->highest_index = (recorder->cursor + 1) % recorder->max_count;
@@ -62,14 +62,14 @@ mono_flight_recorder_iter_next (MonoFlightRecorderIter *iter, MonoFlightRecorder
                return FALSE;
 
        g_assert (iter->lowest_index >= 0);
-       g_assert (iter->lowest_index < iter->recorder->max_count);
+       g_assert (GINTPTR_TO_SIZE(iter->lowest_index) < iter->recorder->max_count);
 
        // Reference to the variably-sized logging payload
        memcpy (payload, (gpointer *) &iter->recorder->items [iter->lowest_index]->payload, iter->recorder->payload_size);
        memcpy (header, (gpointer *) &iter->recorder->items [iter->lowest_index]->header, sizeof (MonoFlightRecorderHeader));
        iter->lowest_index++;
 
-       if (iter->lowest_index >= iter->recorder->max_count)
+       if (GINTPTR_TO_SIZE(iter->lowest_index) >= iter->recorder->max_count)
                iter->lowest_index = iter->lowest_index % iter->recorder->max_count;
 
        return TRUE;
index 20091c3..316f361 100644 (file)
@@ -62,7 +62,7 @@ int
 mono_poll (mono_pollfd *ufds, unsigned int nfds, int timeout)
 {
        struct timeval tv, *tvptr;
-       int i, fd, events, affected, count;
+       int fd, events, affected, count;
        fd_set rfds, wfds, efds;
        int nexc = 0;
        int maxfd = 0;
@@ -79,7 +79,7 @@ mono_poll (mono_pollfd *ufds, unsigned int nfds, int timeout)
        FD_ZERO (&wfds);
        FD_ZERO (&efds);
 
-       for (i = 0; i < nfds; i++) {
+       for (unsigned int i = 0; i < nfds; i++) {
                ufds [i].revents = 0;
                fd = ufds [i].fd;
                if (fd < 0)
@@ -133,7 +133,7 @@ mono_poll (mono_pollfd *ufds, unsigned int nfds, int timeout)
        }
 
        count = 0;
-       for (i = 0; i < nfds && affected > 0; i++) {
+       for (unsigned int i = 0; i < nfds && affected > 0; i++) {
                fd = ufds [i].fd;
                if (fd < 0)
                        continue;
index b91bb7e..c73cdd3 100644 (file)
@@ -34,11 +34,11 @@ enum {
        do \
        { \
                MonoBitSet *__set = (set); \
-               for (int __i = 0; __i < __set->size / MONO_BITSET_BITS_PER_CHUNK; __i++) { \
+               for (gsize __i = 0; __i < __set->size / MONO_BITSET_BITS_PER_CHUNK; __i++) { \
                        if (__set->data [__i]) { \
-                               for (int __j = 0; __j < MONO_BITSET_BITS_PER_CHUNK; __j++) { \
+                               for (gsize __j = 0; __j < MONO_BITSET_BITS_PER_CHUNK; __j++) { \
                                        if (__set->data [__i] & ((gsize) 1 << __j)) { \
-                                               guint idx = __j + __i * MONO_BITSET_BITS_PER_CHUNK; \
+                                               gsize idx = __j + __i * MONO_BITSET_BITS_PER_CHUNK; \
                                                __VA_ARGS__; \
                                        } \
                                } \
index 6866bf3..b857533 100644 (file)
@@ -42,8 +42,8 @@ MONO_API_FUNCTION(mono_bool, mono_image_is_dynamic, (MonoImage *image))
 MONO_API_FUNCTION(char*, mono_image_rva_map, (MonoImage *image, uint32_t rva))
 
 MONO_API_FUNCTION(const MonoTableInfo *, mono_image_get_table_info, (MonoImage *image, int table_id))
-MONO_API_FUNCTION(int, mono_image_get_table_rows, (MonoImage *image, int table_id))
-MONO_API_FUNCTION(int, mono_table_info_get_rows, (const MonoTableInfo *table))
+MONO_API_FUNCTION(MONO_RT_EXTERNAL_ONLY int, mono_image_get_table_rows, (MonoImage *image, int table_id))
+MONO_API_FUNCTION(MONO_RT_EXTERNAL_ONLY int, mono_table_info_get_rows, (const MonoTableInfo *table))
 
 /* This actually returns a MonoPEResourceDataEntry *, but declaring it
  * causes an include file loop.