From: Scott Wood Date: Wed, 4 Jul 2007 01:33:58 +0000 (-0500) Subject: Merge branch 'origin' X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=commitdiff_plain;h=15d9baeca05f30f8564785c255fed765ede457ff;hp=-c Merge branch 'origin' Conflicts: lib/c++/orb.cc --- 15d9baeca05f30f8564785c255fed765ede457ff diff --combined lib/c++/orb.cc index 30b1bcc,31f5cf3..a6158bf --- a/lib/c++/orb.cc +++ b/lib/c++/orb.cc @@@ -7,6 -7,7 +7,6 @@@ namespace RunTime // This function could be made to do a binary search if we can // manage to somehow sort the IFaceTables... - uintptr_t downcast(::System::_i_Object *obj, const unsigned long *new_guid) { @@@ -29,15 -30,15 +29,15 @@@ // behaves. while (true) { - if (tbl->guid[0] == new_guid_first && - tbl->guid[1] == new_guid[1] && + if (tbl->info->guid[0] == new_guid_first && + tbl->info->guid[1] == new_guid[1] && (sizeof(long) == 8 || - (tbl->guid[2] == new_guid[2] && - tbl->guid[3] == new_guid[3]))) + (tbl->info->guid[2] == new_guid[2] && + tbl->info->guid[3] == new_guid[3]))) break; tbl++; - if (__builtin_expect(!tbl->guid, 0)) + if (__builtin_expect(!tbl->info->guid, 0)) return 0; } @@@ -48,6 -49,7 +48,6 @@@ return ptr; }; - namespace Priv { typedef void (*MethodEntry)(ParamInfoBlock *pib); @@@ -57,7 -59,7 +57,7 @@@ void *ptr; // pointer to the class interface }; - typedef Util::RadixTree ObjTable; + typedef ::Util::RadixTree ObjTable; ObjTable objtable; unsigned long get_pc() @@@ -67,9 -69,11 +67,9 @@@ void exception_to_array(::System::VStruct *ex, Array *ar) { - // FIXME -// ar->ptr = reinterpret_cast(ex); -// ar->count = ex->_infoptr->structlen; + // FIXME: marshall struct } - + void handle_message(ParamInfoBlock *pib) { Message *msg = reinterpret_cast(pib->segments[0].ptr); @@@ -80,9 -84,9 +80,7 @@@ throw_idl(ShortMessage, 0, pib->segments[0].len, sizeof(InvokeMethod)); - // ID obj = pib->objlist[0]; - - +// ID obj = pib->objlist[0]; - - break; } @@@ -102,8 -106,8 +100,8 @@@ extern "C" void handle_message(::System ::System::RunTime::Priv::handle_message(pib); } - catch (::System::Exceptions::Exception *ex) { - ::System::RunTime::Priv::exception_to_array(ex, ex_arr); + catch (::System::Exceptions::Exception &ex) { + ::System::RunTime::Priv::exception_to_array(&ex, ex_arr); } catch (...) {