X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmono-basic-block.c;h=53f21530024f24659ec67200a40fab23b4d548f6;hb=56ad8f4e5dfb8198e4671f631a3103b1e8b83dd3;hp=651333cfaad292558183a4dd9277a8ba8a6909a7;hpb=ebfc3c3cfb62abfd0cb518fb7b5942f349bec1ea;p=mono.git diff --git a/mono/metadata/mono-basic-block.c b/mono/metadata/mono-basic-block.c index 651333cfaad..53f21530024 100644 --- a/mono/metadata/mono-basic-block.c +++ b/mono/metadata/mono-basic-block.c @@ -5,6 +5,7 @@ * Rodrigo Kumpera (rkumpera@novell.com) * * Copyright 2010 Novell, Inc (http://www.novell.com) + * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #include @@ -295,11 +296,11 @@ bb_liveness (MonoSimpleBasicBlock *bb) } while (mark_stack->len > 0) { - MonoSimpleBasicBlock *block = g_ptr_array_remove_index_fast (mark_stack, mark_stack->len - 1); + MonoSimpleBasicBlock *block = (MonoSimpleBasicBlock *)g_ptr_array_remove_index_fast (mark_stack, mark_stack->len - 1); block->dead = FALSE; for (tmp = block->out_bb; tmp; tmp = tmp->next) { - MonoSimpleBasicBlock *to = tmp->data; + MonoSimpleBasicBlock *to = (MonoSimpleBasicBlock *)tmp->data; if (to->dead) g_ptr_array_add (mark_stack, to); } @@ -514,21 +515,15 @@ mono_basic_block_free (MonoSimpleBasicBlock *bb) * Return the list of basic blocks of method. Return NULL on failure and set @error. */ MonoSimpleBasicBlock* -mono_basic_block_split (MonoMethod *method, MonoError *error) +mono_basic_block_split (MonoMethod *method, MonoError *error, MonoMethodHeader *header) { + MonoError inner_error; MonoSimpleBasicBlock *bb, *root; const unsigned char *start, *end; - MonoMethodHeader *header = mono_method_get_header (method); + start = header->code; end = start + header->code_size; - mono_error_init (error); - - if (!header) { - mono_error_set_not_verifiable (error, method, "Could not decode header"); - return NULL; - } - bb = g_new0 (MonoSimpleBasicBlock, 1); bb->start = 0; bb->end = end - start;