]> git.buserror.net Git - polintos/scott/priv.git/commitdiff
Merge branch 'origin'
authorScott Wood <scott@buserror.net>
Wed, 4 Jul 2007 01:33:58 +0000 (20:33 -0500)
committerScott Wood <scott@buserror.net>
Wed, 4 Jul 2007 01:33:58 +0000 (20:33 -0500)
Conflicts:

lib/c++/orb.cc

1  2 
lib/c++/orb.cc

diff --combined lib/c++/orb.cc
index 30b1bcc576c364893fe5a69ea4e5e93b1835b6db,31f5cf3cfba2a82d824c8ae55f32c8bf5e8ab7fc..a6158bf9ebcf0c23824e28e6adcf34f671b55e10
@@@ -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)
        {
                // 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<Object, ID, 6> ObjTable;
 +              typedef ::Util::RadixTree<Object, ID, 6> ObjTable;
                ObjTable objtable;
  
                unsigned long get_pc()
  
                void exception_to_array(::System::VStruct *ex, Array<uint8_t> *ar)
                {
 -                      // FIXME
 -//                    ar->ptr = reinterpret_cast<uint8_t *>(ex);
 -//                    ar->count = ex->_infoptr->structlen;
 +                      // FIXME: marshall struct
                }
+               
                void handle_message(ParamInfoBlock *pib)
                {
                        Message *msg = reinterpret_cast<Message *>(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 (...) {