int Buddy_Dealloc(Buddy_Heap* h, void* addr) { register int k; Buddy_FreeListNode *L, *R; cli(); /* b'cause freeList[] etc are shard vars !!! */ if ((addr <(void*)&h->heap[0]) || (addr >=(void*)&h->heap[1<<h->M])) return -1; /* addr outside of valid range of heap */ L= addr -sizeof(L->size); k= L->size; /* get block's size k at L-sizeof() */ if ((k <0) || (k >h->M)) return -1; /* block never allocated, already free'd, its size-field was overwritten */ for (;;) { R= Buddy(k, L); /* S1: (is buddy free ?) */ if ((k ==h->M) /* max heapsize is free */ \ || (R->size >0) /* buddy is reserved/in-use */ \ || (R->size != -k)) /* buddy is free but not of same size */ break; /* goto S3 */ R->backward->forward= R->forward; /* S2: (combine with buddy) */ R->forward->backward= R->backward; k++; if (R <L) L= R; /* L's buddy was on the left */ } /* goto S1 */ /* S3: put block in freeList[k] */ L->size= -k; /* mark block as free */ L->forward= h->freeList[k].forward; /* and insert it at head of list */ h->freeList[k].forward->backward= L; L->backward= &h->freeList[k]; h->freeList[k].forward= L; //RTK_RestoreIntsEnable; return -1; }
gboolean Media::media_new_cb(PurpleMediaManager *manager, PurpleMedia *media, PurpleAccount *account, gchar *screenname, gpointer nul) { PurpleBuddy *buddy = purple_find_buddy(account, screenname); const gchar *alias = buddy ? purple_buddy_get_contact_alias(buddy) : screenname; b_log[W_INFO] << "Started video with " << alias; media_list.addMedia(Media(media, Buddy(buddy))); g_signal_connect(G_OBJECT(media), "error", G_CALLBACK(minbif_media_error_cb), media); g_signal_connect(G_OBJECT(media), "state-changed", G_CALLBACK(minbif_media_state_changed_cb), media); g_signal_connect(G_OBJECT(media), "stream-info", G_CALLBACK(minbif_media_stream_info_cb), media); return TRUE; }
QString Uic::createObjectImpl( const QDomElement &e, const QString& parentClass, const QString& par, const QString& layout ) { QString parent( par ); if ( parent == "this" && isMainWindow ) { if ( !createdCentralWidget ) out << indent << "setCentralWidget( new QWidget( this, \"qt_central_widget\" ) );" << endl; createdCentralWidget = TRUE; parent = "centralWidget()"; } QDomElement n; QString objClass, objName; int numItems = 0; int numColumns = 0; int numRows = 0; if ( layouts.contains( e.tagName() ) ) return createLayoutImpl( e, parentClass, parent, layout ); objClass = getClassName( e ); if ( objClass.isEmpty() ) return objName; objName = getObjectName( e ); QString definedName = objName; bool isTmpObject = objName.isEmpty() || objClass == "QLayoutWidget"; if ( isTmpObject ) { if ( objClass[0] == 'Q' ) objName = objClass.mid(1); else objName = objClass.lower(); objName.prepend( "private" ); } bool isLine = objClass == "Line"; if ( isLine ) objClass = "QFrame"; out << endl; if ( objClass == "QLayoutWidget" ) { if ( layout.isEmpty() ) { // register the object and unify its name objName = registerObject( objName ); out << " QWidget* " << objName << " = new QWidget( " << parent << ", \"" << definedName << "\" );" << endl; } else { // the layout widget is not necessary, hide it by creating its child in the parent QString result; for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if (tags.contains( n.tagName() ) ) result = createObjectImpl( n, parentClass, parent, layout ); } return result; } } else if ( objClass != "QToolBar" && objClass != "QMenuBar" ) { // register the object and unify its name objName = registerObject( objName ); out << " "; if ( isTmpObject ) out << objClass << "* "; out << objName << " = new " << createObjectInstance( objClass, parent, objName ) << ";" << endl; } if ( objClass == "QAxWidget" ) { QString controlId; for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if ( n.tagName() == "property" && n.attribute( "name" ) == "control" ) { controlId = n.firstChild().toElement().text(); } } out << " "; out << objName << "->setControl(\"" << controlId << "\");" << endl; } lastItem = "0"; // set the properties and insert items bool hadFrameShadow = FALSE; for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if ( n.tagName() == "property" ) { bool stdset = stdsetdef; if ( n.hasAttribute( "stdset" ) ) stdset = toBool( n.attribute( "stdset" ) ); QString prop = n.attribute( "name" ); if ( prop == "database" ) continue; QString value = setObjectProperty( objClass, objName, prop, n.firstChild().toElement(), stdset ); if ( value.isEmpty() ) continue; if ( prop == "name" ) continue; if ( isLine && prop == "frameShadow" ) hadFrameShadow = TRUE; if ( prop == "buddy" && value.startsWith("\"") && value.endsWith("\"") ) { buddies << Buddy( objName, value.mid(1, value.length() - 2 ) ); continue; } if ( isLine && prop == "orientation" ) { prop = "frameShape"; if ( value.right(10) == "Horizontal" ) value = "QFrame::HLine"; else value = "QFrame::VLine"; if ( !hadFrameShadow ) { prop = "frameStyle"; value += " | QFrame::Sunken"; } } if ( prop == "buttonGroupId" ) { if ( parentClass == "QButtonGroup" ) out << indent << parent << "->insert( " << objName << ", " << value << " );" << endl; continue; } if ( prop == "frameworkCode" ) continue; if ( objClass == "QMultiLineEdit" && QRegExp("echoMode|hMargin|maxLength|maxLines|undoEnabled").exactMatch(prop) ) continue; QString call = objName + "->"; if ( stdset ) { call += mkStdSet( prop ) + "( "; } else { call += "setProperty( \"" + prop + "\", "; } if ( prop == "accel" ) call += "QKeySequence( " + value + " ) );"; else call += value + " );"; if ( n.firstChild().toElement().tagName() == "string" || prop == "currentItem" ) { trout << indent << call << endl; } else { out << indent << call << endl; } } else if ( n.tagName() == "item" ) { QString call; QString value; if ( objClass.contains( "ListBox" ) ) { call = createListBoxItemImpl( n, objName ); if ( !call.isEmpty() ) { if ( numItems == 0 ) trout << indent << objName << "->clear();" << endl; trout << indent << call << endl; } } else if ( objClass.contains( "ComboBox" ) ) { call = createListBoxItemImpl( n, objName, &value ); if ( !call.isEmpty() ) { if ( numItems == 0 ) trout << indent << objName << "->clear();" << endl; trout << indent << call << endl; } } else if ( objClass.contains( "IconView" ) ) { call = createIconViewItemImpl( n, objName ); if ( !call.isEmpty() ) { if ( numItems == 0 ) trout << indent << objName << "->clear();" << endl; trout << indent << call << endl; } } else if ( objClass.contains( "ListView" ) ) { call = createListViewItemImpl( n, objName, QString::null ); if ( !call.isEmpty() ) { if ( numItems == 0 ) trout << indent << objName << "->clear();" << endl; trout << call << endl; } } if ( !call.isEmpty() ) numItems++; } else if ( n.tagName() == "column" || n.tagName() == "row" ) { QString call; QString value; if ( objClass.contains( "ListView" ) ) { call = createListViewColumnImpl( n, objName, &value ); if ( !call.isEmpty() ) { out << call; trout << indent << objName << "->header()->setLabel( " << numColumns++ << ", " << value << " );\n"; } } else if ( objClass == "QTable" || objClass == "QDataTable" ) { bool isCols = ( n.tagName() == "column" ); call = createTableRowColumnImpl( n, objName, &value ); if ( !call.isEmpty() ) { out << call; trout << indent << objName << "->" << ( isCols ? "horizontalHeader" : "verticalHeader" ) << "()->setLabel( " << ( isCols ? numColumns++ : numRows++ ) << ", " << value << " );\n"; } } } } // create all children, some widgets have special requirements if ( objClass == "QTabWidget" ) { for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if ( tags.contains( n.tagName() ) ) { QString page = createObjectImpl( n, objClass, objName ); QString comment; QString label = DomTool::readAttribute( n, "title", "", comment ).toString(); out << indent << objName << "->insertTab( " << page << ", QString::fromLatin1(\"\") );" << endl; trout << indent << objName << "->changeTab( " << page << ", " << trcall( label, comment ) << " );" << endl; } } } else if ( objClass == "QWidgetStack" ) { for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if ( tags.contains( n.tagName() ) ) { QString page = createObjectImpl( n, objClass, objName ); int id = DomTool::readAttribute( n, "id", "" ).toInt(); out << indent << objName << "->addWidget( " << page << ", " << id << " );" << endl; } } } else if ( objClass == "QToolBox" ) { for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if ( tags.contains( n.tagName() ) ) { QString page = createObjectImpl( n, objClass, objName ); QString comment; QString label = DomTool::readAttribute( n, "label", "", comment ).toString(); out << indent << objName << "->addItem( " << page << ", QString::fromLatin1(\"\") );" << endl; trout << indent << objName << "->setItemLabel( " << objName << "->indexOf(" << page << "), " << trcall( label, comment ) << " );" << endl; } } } else if ( objClass != "QToolBar" && objClass != "QMenuBar" ) { // standard widgets WidgetInterface *iface = 0; widgetManager()->queryInterface( objClass, &iface ); #ifdef QT_CONTAINER_CUSTOM_WIDGETS int id = WidgetDatabase::idFromClassName( objClass ); if ( WidgetDatabase::isContainer( id ) && WidgetDatabase::isCustomPluginWidget( id ) && iface ) { QWidgetContainerInterfacePrivate *iface2 = 0; iface->queryInterface( IID_QWidgetContainer, (QUnknownInterface**)&iface2 ); if ( iface2 ) { bool supportsPages = iface2->supportsPages( objClass ); for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if ( tags.contains( n.tagName() ) ) { if ( supportsPages ) { QString page = createObjectImpl( n, objClass, objName ); QString comment; QString label = DomTool::readAttribute( n, "label", "", comment ).toString(); out << indent << iface2->createCode( objClass, objName, page, label ) << endl; } else { createObjectImpl( n, objClass, objName ); } } } iface2->release(); } iface->release(); } else { #endif for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { if ( tags.contains( n.tagName() ) ) createObjectImpl( n, objClass, objName ); } #ifdef QT_CONTAINER_CUSTOM_WIDGETS } #endif } return objName; }