void ibsSimpleAllocatorPrintInfo(const PIbsAllocator a) { printf("\nAllocator %s ", a->name); printSize("Size", a->size); printSize("Used", a->used); printSize("Wasted", a->size - a->free - a->used); printSize("Free", a->free); puts(""); }
int main(int argc, char *argv[]) { int c=1; construct(); while(c!=0) { menu(); scanf("%d",&c); if(c==1) insert(); else if(c==2) remve(); else if(c==3) peek(); else if(c==4) printHeap(); else if(c==5) printSize(); else if(c==6) printPos(); else if(c==7) c=0; } return 0; }
rpmRC rpmReadSignature(FD_t fd, Header * sighp, char ** msg) { char *buf = NULL; struct hdrblob_s blob; Header sigh = NULL; rpmRC rc = RPMRC_FAIL; /* assume failure */ if (sighp) *sighp = NULL; if (hdrblobRead(fd, 1, 1, RPMTAG_HEADERSIGNATURES, &blob, &buf) != RPMRC_OK) goto exit; /* OK, blob looks sane, load the header. */ if (hdrblobImport(&blob, 0, &sigh, &buf) != RPMRC_OK) goto exit; printSize(fd, sigh); rc = RPMRC_OK; exit: if (sighp && sigh && rc == RPMRC_OK) *sighp = headerLink(sigh); headerFree(sigh); if (msg != NULL) { *msg = buf; } else { free(buf); } return rc; }
virtual void * run() { while ( ! getStop() ) { uint64_t const s = libmaus2::util::GetFileSize::getDirSize(fn); // (*sizestream) << "[S]\t" << fn << "\t" << s << std::endl; if ( s > maxsize ) { maxsize = s; if ( sizestream ) printSize(*sizestream); } struct timespec req, rem; req.tv_sec = sleeptime; req.tv_nsec = 0; rem.tv_sec = 0; rem.tv_nsec = 0; nanosleep(&req,&rem); } return 0; }
int main() { printSize(); printStaticArraySize(); printDynamicArraySize(); printPointerArraySize(); return 0; }
int main() { int array[] = { 1, 1, 2, 3, 5, 8, 13, 21 }; std::cout << sizeof(array) << '\n'; printSize(array); // the array argument decays into a pointer here printSizeS(array); // the array argument decays into a pointer here return 0; }
// print the whole matrix including it's name and size void Matrix::print(std::string msg) { assertDefined("print"); printSize(msg); for (int r=0; r<maxr; r++) { for (int c=0; c<maxc; c++) { printf("%10.6lf ", m[r][c]); // printf("%7.3lg ", m[r][c]); } printf("\n"); } fflush(stdout); }
rpmRC rpmReadSignature(FD_t fd, Header * sighp, sigType sig_type, char ** msg) { char *buf = NULL; int32_t block[4]; int32_t il; int32_t dl; int32_t * ei = NULL; entryInfo pe; unsigned int nb, uc; int32_t ril = 0; struct indexEntry_s entry; struct entryInfo_s info; unsigned char * dataStart; unsigned char * dataEnd = NULL; Header sigh = NULL; rpmRC rc = RPMRC_FAIL; /* assume failure */ int xx; int i; if (sighp) *sighp = NULL; if (sig_type != RPMSIGTYPE_HEADERSIG) goto exit; memset(block, 0, sizeof(block)); if ((xx = Fread(block, 1, sizeof(block), fd)) != sizeof(block)) { rasprintf(&buf, _("sigh size(%d): BAD, read returned %d\n"), (int)sizeof(block), xx); goto exit; } if (memcmp(block, rpm_header_magic, sizeof(rpm_header_magic))) { rasprintf(&buf, _("sigh magic: BAD\n")); goto exit; } il = ntohl(block[2]); if (il < 0 || il > 32) { rasprintf(&buf, _("sigh tags: BAD, no. of tags(%d) out of range\n"), il); goto exit; } dl = ntohl(block[3]); if (dl < 0 || dl > 8192) { rasprintf(&buf, _("sigh data: BAD, no. of bytes(%d) out of range\n"), dl); goto exit; } memset(&entry, 0, sizeof(entry)); memset(&info, 0, sizeof(info)); nb = (il * sizeof(struct entryInfo_s)) + dl; uc = sizeof(il) + sizeof(dl) + nb; ei = xmalloc(uc); ei[0] = block[2]; ei[1] = block[3]; pe = (entryInfo) &ei[2]; dataStart = (unsigned char *) (pe + il); if ((xx = Fread(pe, 1, nb, fd)) != nb) { rasprintf(&buf, _("sigh blob(%d): BAD, read returned %d\n"), (int)nb, xx); goto exit; } /* Check (and convert) the 1st tag element. */ xx = headerVerifyInfo(1, dl, pe, &entry.info, 0); if (xx != -1) { rasprintf(&buf, _("tag[%d]: BAD, tag %d type %d offset %d count %d\n"), 0, entry.info.tag, entry.info.type, entry.info.offset, entry.info.count); goto exit; } /* Is there an immutable header region tag? */ if (entry.info.tag == RPMTAG_HEADERSIGNATURES) { /* Is the region tag sane? */ if (!(entry.info.type == REGION_TAG_TYPE && entry.info.count == REGION_TAG_COUNT)) { rasprintf(&buf, _("region tag: BAD, tag %d type %d offset %d count %d\n"), entry.info.tag, entry.info.type, entry.info.offset, entry.info.count); goto exit; } /* Is the trailer within the data area? */ if (entry.info.offset + REGION_TAG_COUNT > dl) { rasprintf(&buf, _("region offset: BAD, tag %d type %d offset %d count %d\n"), entry.info.tag, entry.info.type, entry.info.offset, entry.info.count); goto exit; } /* Is there an immutable header region tag trailer? */ dataEnd = dataStart + entry.info.offset; (void) memcpy(&info, dataEnd, REGION_TAG_COUNT); /* XXX Really old packages have HEADER_IMAGE, not HEADER_SIGNATURES. */ if (info.tag == htonl(RPMTAG_HEADERIMAGE)) { rpmTagVal stag = htonl(RPMTAG_HEADERSIGNATURES); info.tag = stag; memcpy(dataEnd, &stag, sizeof(stag)); } dataEnd += REGION_TAG_COUNT; xx = headerVerifyInfo(1, il * sizeof(*pe), &info, &entry.info, 1); if (xx != -1 || !((entry.info.tag == RPMTAG_HEADERSIGNATURES || entry.info.tag == RPMTAG_HEADERIMAGE) && entry.info.type == REGION_TAG_TYPE && entry.info.count == REGION_TAG_COUNT)) { rasprintf(&buf, _("region trailer: BAD, tag %d type %d offset %d count %d\n"), entry.info.tag, entry.info.type, entry.info.offset, entry.info.count); goto exit; } memset(&info, 0, sizeof(info)); /* Is the no. of tags in the region less than the total no. of tags? */ ril = entry.info.offset/sizeof(*pe); if ((entry.info.offset % sizeof(*pe)) || ril > il) { rasprintf(&buf, _("region size: BAD, ril(%d) > il(%d)\n"), ril, il); goto exit; } } /* Sanity check signature tags */ memset(&info, 0, sizeof(info)); for (i = 1; i < il; i++) { xx = headerVerifyInfo(1, dl, pe+i, &entry.info, 0); if (xx != -1) { rasprintf(&buf, _("sigh tag[%d]: BAD, tag %d type %d offset %d count %d\n"), i, entry.info.tag, entry.info.type, entry.info.offset, entry.info.count); goto exit; } } /* OK, blob looks sane, load the header. */ sigh = headerImport(ei, uc, 0); if (sigh == NULL) { rasprintf(&buf, _("sigh load: BAD\n")); goto exit; } { size_t sigSize = headerSizeof(sigh, HEADER_MAGIC_YES); size_t pad = (8 - (sigSize % 8)) % 8; /* 8-byte pad */ ssize_t trc; struct rpmtd_s sizetag; rpm_loff_t archSize = 0; /* Position at beginning of header. */ if (pad && (trc = Fread(block, 1, pad, fd)) != pad) { rasprintf(&buf, _("sigh pad(%zd): BAD, read %zd bytes\n"), pad, trc); goto exit; } /* Print package component sizes. */ if (headerGet(sigh, RPMSIGTAG_LONGSIZE, &sizetag, HEADERGET_DEFAULT)) { rpm_loff_t *tsize = rpmtdGetUint64(&sizetag); archSize = (tsize) ? *tsize : 0; } else if (headerGet(sigh, RPMSIGTAG_SIZE, &sizetag, HEADERGET_DEFAULT)) { rpm_off_t *tsize = rpmtdGetUint32(&sizetag); archSize = (tsize) ? *tsize : 0; } rpmtdFreeData(&sizetag); rc = printSize(fd, sigSize, pad, archSize); if (rc != RPMRC_OK) { rasprintf(&buf, _("sigh sigSize(%zd): BAD, fstat(2) failed\n"), sigSize); goto exit; } } ei = NULL; /* XXX will be freed with header */ exit: if (sighp && sigh && rc == RPMRC_OK) *sighp = headerLink(sigh); headerFree(sigh); free(ei); if (msg != NULL) { *msg = buf; } else { free(buf); } return rc; }
void nsLeafBoxFrame::Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, const nsHTMLReflowState& aReflowState, nsReflowStatus& aStatus) { // This is mostly a copy of nsBoxFrame::Reflow(). // We aren't able to share an implementation because of the frame // class hierarchy. If you make changes here, please keep // nsBoxFrame::Reflow in sync. DO_GLOBAL_REFLOW_COUNT("nsLeafBoxFrame"); DISPLAY_REFLOW(aPresContext, this, aReflowState, aDesiredSize, aStatus); NS_ASSERTION(aReflowState.ComputedWidth() >=0 && aReflowState.ComputedHeight() >= 0, "Computed Size < 0"); #ifdef DO_NOISY_REFLOW printf("\n-------------Starting LeafBoxFrame Reflow ----------------------------\n"); printf("%p ** nsLBF::Reflow %d R: ", this, myCounter++); switch (aReflowState.reason) { case eReflowReason_Initial: printf("Ini");break; case eReflowReason_Incremental: printf("Inc");break; case eReflowReason_Resize: printf("Rsz");break; case eReflowReason_StyleChange: printf("Sty");break; case eReflowReason_Dirty: printf("Drt "); break; default:printf("<unknown>%d", aReflowState.reason);break; } printSize("AW", aReflowState.AvailableWidth()); printSize("AH", aReflowState.AvailableHeight()); printSize("CW", aReflowState.ComputedWidth()); printSize("CH", aReflowState.ComputedHeight()); printf(" *\n"); #endif aStatus = NS_FRAME_COMPLETE; // create the layout state nsBoxLayoutState state(aPresContext, aReflowState.rendContext); nsSize computedSize(aReflowState.ComputedWidth(),aReflowState.ComputedHeight()); nsMargin m; m = aReflowState.ComputedPhysicalBorderPadding(); //GetBorderAndPadding(m); // this happens sometimes. So lets handle it gracefully. if (aReflowState.ComputedHeight() == 0) { nsSize minSize = GetMinSize(state); computedSize.height = minSize.height - m.top - m.bottom; } nsSize prefSize(0,0); // if we are told to layout intrinic then get our preferred size. if (computedSize.width == NS_INTRINSICSIZE || computedSize.height == NS_INTRINSICSIZE) { prefSize = GetPrefSize(state); nsSize minSize = GetMinSize(state); nsSize maxSize = GetMaxSize(state); prefSize = BoundsCheck(minSize, prefSize, maxSize); } // get our desiredSize if (aReflowState.ComputedWidth() == NS_INTRINSICSIZE) { computedSize.width = prefSize.width; } else { computedSize.width += m.left + m.right; } if (aReflowState.ComputedHeight() == NS_INTRINSICSIZE) { computedSize.height = prefSize.height; } else { computedSize.height += m.top + m.bottom; } // handle reflow state min and max sizes // XXXbz the width handling here seems to be wrong, since // mComputedMin/MaxWidth is a content-box size, whole // computedSize.width is a border-box size... if (computedSize.width > aReflowState.ComputedMaxWidth()) computedSize.width = aReflowState.ComputedMaxWidth(); if (computedSize.width < aReflowState.ComputedMinWidth()) computedSize.width = aReflowState.ComputedMinWidth(); // Now adjust computedSize.height for our min and max computed // height. The only problem is that those are content-box sizes, // while computedSize.height is a border-box size. So subtract off // m.TopBottom() before adjusting, then readd it. computedSize.height = std::max(0, computedSize.height - m.TopBottom()); computedSize.height = NS_CSS_MINMAX(computedSize.height, aReflowState.ComputedMinHeight(), aReflowState.ComputedMaxHeight()); computedSize.height += m.TopBottom(); nsRect r(mRect.x, mRect.y, computedSize.width, computedSize.height); SetBounds(state, r); // layout our children Layout(state); // ok our child could have gotten bigger. So lets get its bounds aDesiredSize.Width() = mRect.width; aDesiredSize.Height() = mRect.height; aDesiredSize.SetTopAscent(GetBoxAscent(state)); // the overflow rect is set in SetBounds() above aDesiredSize.mOverflowAreas = GetOverflowAreas(); #ifdef DO_NOISY_REFLOW { printf("%p ** nsLBF(done) W:%d H:%d ", this, aDesiredSize.Width(), aDesiredSize.Height()); if (maxElementWidth) { printf("MW:%d\n", *maxElementWidth); } else { printf("MW:?\n"); } } #endif }
void ExportWizard::setWallpaper() { // find a new path QString wFilePath; int fileNumber = 0; while (wFilePath.isEmpty() || QFile::exists(wFilePath)) #if defined(Q_OS_WIN) || defined(Q_OS_OS2) wFilePath = QDir::toNativeSeparators(QDir::homePath()) + QDir::separator() + "fotowall-background" + QString::number(++fileNumber) + ".bmp"; #else wFilePath = QDir::toNativeSeparators(QDir::homePath()) + QDir::separator() + "fotowall-background" + QString::number(++fileNumber) + ".jpg"; #endif // render the image QImage image; QSize sceneSize(m_canvas->width(), m_canvas->height()); QSize desktopSize = QApplication::desktop()->screenGeometry().size(); if (m_ui->wbZoom->isChecked()) image = m_canvas->renderedImage(desktopSize, Qt::KeepAspectRatioByExpanding); else if (m_ui->wbScaleKeep->isChecked()) image = m_canvas->renderedImage(desktopSize, Qt::KeepAspectRatio); else if (m_ui->wbScaleIgnore->isChecked()) image = m_canvas->renderedImage(desktopSize, Qt::IgnoreAspectRatio); else image = m_canvas->renderedImage(sceneSize); // save the right kind of image into the home dir #if defined(Q_OS_WIN) || defined(Q_OS_OS2) if (!image.save(wFilePath, "BMP")) { #else if (!image.save(wFilePath, "JPG", 100)) { #endif QMessageBox::warning(this, tr("Wallpaper Error"), tr("Can't save the image to disk.")); return; } #if defined(Q_OS_WIN) //Set new background path {QSettings appSettings("HKEY_CURRENT_USER\\Control Panel\\Desktop", QSettings::NativeFormat); appSettings.setValue("ConvertedWallpaper", wFilePath); appSettings.setValue("Wallpaper", wFilePath);} //Notification to windows refresh desktop SystemParametersInfoA(SPI_SETDESKWALLPAPER, true, (void*)qPrintable(wFilePath), SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); #elif defined(Q_OS_LINUX) // KDE4 if (QString(qgetenv("KDE_SESSION_VERSION")).startsWith("4")) QMessageBox::warning(this, tr("Manual Wallpaper Change"), tr("KDE4 doesn't yet support changing wallpaper automatically.\nGo to the Desktop Settings and select the file:\n %1").arg(wFilePath)); // KDE3 QString kde3cmd = "dcop kdesktop KBackgroundIface setWallpaper '" + wFilePath + "' 6"; QProcess::startDetached(kde3cmd); // Gnome2 QString gnome2Cmd = "gconftool -t string -s /desktop/gnome/background/picture_filename " + wFilePath ; QProcess::startDetached(gnome2Cmd); #else #warning "Implement background change for this OS" #endif } void ExportWizard::saveImage() { if (m_ui->filePath->text().isEmpty()) { QMessageBox::warning(this, tr("No file selected !"), tr("You need to choose a file path for saving.")); return; } QString imgFilePath = m_ui->filePath->text(); // get the rendering size QSize imageSize(m_ui->saveWidth->value(), m_ui->saveHeight->value()); // render the image QImage image; bool hideTools = !m_ui->imgAsIsBox->isChecked(); if (m_ui->ibZoom->isChecked()) image = m_canvas->renderedImage(imageSize, Qt::KeepAspectRatioByExpanding, hideTools); else if (m_ui->ibScaleKeep->isChecked()) image = m_canvas->renderedImage(imageSize, Qt::KeepAspectRatio, hideTools); else image = m_canvas->renderedImage(imageSize, Qt::IgnoreAspectRatio, hideTools); // rotate image if requested if (m_ui->saveLandscape->isChecked()) { // Save in landscape mode, so rotate QMatrix matrix; matrix.rotate(90); image = image.transformed(matrix); } // save image if (image.save(imgFilePath) && QFile::exists(imgFilePath)) { int size = QFileInfo(imgFilePath).size(); QMessageBox::information(this, tr("Done"), tr("The target image is %1 bytes long").arg(size)); } else QMessageBox::warning(this, tr("Rendering Error"), tr("Error rendering to the file '%1'").arg(imgFilePath)); } void ExportWizard::startPosterazor() { static const quint32 posterPixels = 6 * 1000000; // Megapixels * 3 bytes! // We will use up the whole posterPixels for the render, respecting the aspect ratio. const qreal widthToHeightRatio = m_canvas->width() / m_canvas->height(); // Thanks to colleague Oswald for some of the math :) const int posterPixelWidth = int(sqrt(widthToHeightRatio * posterPixels)); const int posterPixelHeight = posterPixels / posterPixelWidth; static const QLatin1String settingsGroup("posterazor"); App::settings->beginGroup(settingsGroup); // TODO: Eliminate Poster size in % ImageLoaderQt loader; loader.setQImage(m_canvas->renderedImage(QSize(posterPixelWidth, posterPixelHeight))); PosteRazorCore posterazor(&loader); posterazor.readSettings(App::settings); Wizard *wizard = new Wizard; Controller controller(&posterazor, wizard); controller.setImageLoadingAvailable(false); controller.setPosterSizeModeAvailable(Types::PosterSizeModePercentual, false); QDialog dialog(this, Qt::CustomizeWindowHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint); dialog.setWindowTitle(tr("Export poster")); dialog.setLayout(new QVBoxLayout); dialog.layout()->addWidget(wizard); dialog.resize(640, 480); dialog.exec(); App::settings->sync(); posterazor.writeSettings(App::settings); App::settings->endGroup(); } bool ExportWizard::printPaper() { // update the realsizeinches, just in case.. slotPrintSizeChanged(); // get dpi, compute printed size int printDpi = m_ui->printDpi->value(); int printWidth = (int)(m_printSizeInches.width() * (float)printDpi); int printHeight = (int)(m_printSizeInches.height() * (float)printDpi); QSize printSize(printWidth, printHeight); Qt::AspectRatioMode printRatio = m_ui->printKeepRatio->isChecked() ? Qt::KeepAspectRatio : Qt::IgnoreAspectRatio; // check if print params differ from the 'Exact Size' stuff if (m_printPreferred) { if (printDpi != m_canvas->modeInfo()->printDpi()) { qWarning("ExportWizard::print: dpi changed to %d from the default %d", printDpi, (int)m_canvas->modeInfo()->printDpi()); } else { QSize exactPrintSize = m_canvas->modeInfo()->fixedPrinterPixels(); if (printSize != exactPrintSize) qWarning("ExportWizard::print: size changed to %dx%d from the default %dx%d", printWidth, printHeight, exactPrintSize.width(), exactPrintSize.height()); } } // setup printer QPrinter printer; printer.setResolution(printDpi); printer.setPaperSize(QPrinter::A4); // configure printer via the print dialog QPrintDialog printDialog(&printer); if (printDialog.exec() != QDialog::Accepted) return false; // TODO: use different ratio modes? QImage image = m_canvas->renderedImage(printSize, printRatio); if (m_ui->printLandscape->isChecked()) { // Print in landscape mode, so rotate QMatrix matrix; matrix.rotate(90); image = image.transformed(matrix); } // And then print QPainter painter; painter.drawImage(image.rect(), image); painter.end(); return true; }
int main( int argc, char* argv[ ] ) { Playlist *myList = NULL; int minutes, seconds; char *name, *title, *artist; Option opt; printf("\n\nWelcome to project 5 - music playlists\n\n"); opt = getAction(); while (opt != QUIT) { switch (opt) { case ADD_LIST: printf("Adding a new playlist to start of library\n"); name = getString("Enter the name of the new playlist"); printf("\nAdding the playlist '%s' to your library (at front of library) \n", name); myList = add(myList, name); break; case ADD_SONG: printf("Add a song to an existing playlist\n"); name = getString("Enter the name of the playlist"); title = getString("Enter the title of the song to add"); artist = getString("Enter the name of the artist"); getTime(&minutes, &seconds); printf("\nAdding the song below to the playlist '%s' (at end of playlist)\n", name); printf("\tTitle : %s\n", title); printf("\tArtist: %s\n", artist); printf("\tLength: %d:%d\n", minutes, seconds); addSong(myList, name, title, artist, minutes, seconds); break; case PRINT_LIST: printf("Print the songs in a playlist\n"); name = getString("Enter the name of the playlist"); printf("\nPrinting the names of all songs in the playlist '%s'\n", name); printSongs(myList, name); break; case LIST_SIZE: printf("Print the size of a playlist\n"); name = getString("Enter the name of the playlist"); printf("\nThe playlist '%s' contains N songs and has NN:NN minutes of music\n", name); printSize(myList, name); break; case STATS: printf("Print statistics on all your playslists\n"); printStats(myList); break; case ADD_LIST_ORDERED: printf("Adding a new playlist to library (ordered)\n"); name = getString("Enter the name of the new playlist"); printf("\nAdding the playlist '%s' to your library (in alphabetical order)\n", name); myList = addOrdered(myList, name); break; case ADD_SONG_ORDERED: printf("Add a song to an existing playlist (ordered)\n"); name = getString("Enter the name of the playlist"); title = getString("Enter the title of the song to add"); artist = getString("Enter the name of the artist"); getTime(&minutes, &seconds); printf("\nAdding the song below to the playlist '%s' (in alphabetical order)\n", name); printf("\tTitle : %s\n", title); printf("\tArtist: %s\n", artist); printf("\tLength: %d:%d\n", minutes, seconds); addSongOrdered(myList, name, title, artist, minutes, seconds); break; case REMOVE_SONG: printf("Removing a song from an existing playlist\n"); name = getString("Enter the name of the playlist"); title = getString("Enter the title of the song to remove"); artist = getString("Enter the artist of the song to remove"); printf("\nRemoving the song '%s' by '%s' from the playlist %s\n", title, artist, name); removeSong(myList, name, title, artist); break; case REMOVE_LIST: printf("Removing a playlist\n"); name = getString("Enter the name of the playlist to remove"); printf("\nRemoving the the playlist %s from your library\n", name); myList = removeList(myList, name); break; case HELP: optionDetails(); break; default: break; } opt = getAction(); } return 0; }
rpmRC rpmReadSignature(FD_t fd, Header * sighp, sigType sig_type, char ** msg) { char *buf = NULL; int32_t block[4]; int32_t il; int32_t dl; int32_t * ei = NULL; entryInfo pe; unsigned int nb, uc; struct indexEntry_s entry; unsigned char * dataStart; Header sigh = NULL; rpmRC rc = RPMRC_FAIL; /* assume failure */ int xx; int i; if (sighp) *sighp = NULL; if (sig_type != RPMSIGTYPE_HEADERSIG) goto exit; memset(block, 0, sizeof(block)); if ((xx = Freadall(fd, block, sizeof(block))) != sizeof(block)) { rasprintf(&buf, _("sigh size(%d): BAD, read returned %d"), (int)sizeof(block), xx); goto exit; } if (memcmp(block, rpm_header_magic, sizeof(rpm_header_magic))) { rasprintf(&buf, _("sigh magic: BAD")); goto exit; } il = ntohl(block[2]); if (il < 0 || il > 32) { rasprintf(&buf, _("sigh tags: BAD, no. of tags(%d) out of range"), il); goto exit; } dl = ntohl(block[3]); if (dl < 0 || dl > 8192) { rasprintf(&buf, _("sigh data: BAD, no. of bytes(%d) out of range"), dl); goto exit; } memset(&entry, 0, sizeof(entry)); nb = (il * sizeof(struct entryInfo_s)) + dl; uc = sizeof(il) + sizeof(dl) + nb; ei = xmalloc(uc); ei[0] = block[2]; ei[1] = block[3]; pe = (entryInfo) &ei[2]; dataStart = (unsigned char *) (pe + il); if ((xx = Freadall(fd, pe, nb)) != nb) { rasprintf(&buf, _("sigh blob(%d): BAD, read returned %d"), (int)nb, xx); goto exit; } /* Verify header immutable region if there is one */ xx = headerVerifyRegion(RPMTAG_HEADERSIGNATURES, &entry, il, dl, pe, dataStart, NULL, NULL, &buf); /* Not found means a legacy V3 package with no immutable region */ if (xx != RPMRC_OK && xx != RPMRC_NOTFOUND) goto exit; /* Sanity check signature tags */ for (i = 1; i < il; i++) { xx = headerVerifyInfo(1, dl, pe+i, &entry.info, 0); if (xx != -1) { rasprintf(&buf, _("sigh tag[%d]: BAD, tag %d type %d offset %d count %d"), i, entry.info.tag, entry.info.type, entry.info.offset, entry.info.count); goto exit; } } /* OK, blob looks sane, load the header. */ sigh = headerImport(ei, uc, 0); if (sigh == NULL) { rasprintf(&buf, _("sigh load: BAD")); goto exit; } ei = NULL; /* XXX will be freed with header */ { size_t sigSize = headerSizeof(sigh, HEADER_MAGIC_YES); size_t pad = (8 - (sigSize % 8)) % 8; /* 8-byte pad */ ssize_t trc; struct rpmtd_s sizetag; rpm_loff_t archSize = 0; /* Position at beginning of header. */ if (pad && (trc = Freadall(fd, block, pad)) != pad) { rasprintf(&buf, _("sigh pad(%zd): BAD, read %zd bytes"), pad, trc); goto exit; } /* Print package component sizes. */ if (headerGet(sigh, RPMSIGTAG_LONGSIZE, &sizetag, HEADERGET_DEFAULT)) { rpm_loff_t *tsize = rpmtdGetUint64(&sizetag); archSize = (tsize) ? *tsize : 0; } else if (headerGet(sigh, RPMSIGTAG_SIZE, &sizetag, HEADERGET_DEFAULT)) { rpm_off_t *tsize = rpmtdGetUint32(&sizetag); archSize = (tsize) ? *tsize : 0; } rpmtdFreeData(&sizetag); rc = printSize(fd, sigSize, pad, archSize); if (rc != RPMRC_OK) { rasprintf(&buf, _("sigh sigSize(%zd): BAD, fstat(2) failed"), sigSize); goto exit; } } exit: if (sighp && sigh && rc == RPMRC_OK) *sighp = headerLink(sigh); headerFree(sigh); free(ei); if (msg != NULL) { *msg = buf; } else { free(buf); } return rc; }
NS_IMETHODIMP nsLeafBoxFrame::Reflow(nsPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, const nsHTMLReflowState& aReflowState, nsReflowStatus& aStatus) { // This is mostly a copy of nsBoxFrame::Reflow(). // We aren't able to share an implementation because of the frame // class hierarchy. If you make changes here, please keep // nsBoxFrame::Reflow in sync. DO_GLOBAL_REFLOW_COUNT("nsLeafBoxFrame", aReflowState.reason); DISPLAY_REFLOW(aPresContext, this, aReflowState, aDesiredSize, aStatus); NS_ASSERTION(aReflowState.mComputedWidth >=0 && aReflowState.mComputedHeight >= 0, "Computed Size < 0"); #ifdef DO_NOISY_REFLOW printf("\n-------------Starting LeafBoxFrame Reflow ----------------------------\n"); printf("%p ** nsLBF::Reflow %d R: ", this, myCounter++); switch (aReflowState.reason) { case eReflowReason_Initial: printf("Ini");break; case eReflowReason_Incremental: printf("Inc");break; case eReflowReason_Resize: printf("Rsz");break; case eReflowReason_StyleChange: printf("Sty");break; case eReflowReason_Dirty: printf("Drt "); break; default:printf("<unknown>%d", aReflowState.reason);break; } printSize("AW", aReflowState.availableWidth); printSize("AH", aReflowState.availableHeight); printSize("CW", aReflowState.mComputedWidth); printSize("CH", aReflowState.mComputedHeight); printf(" *\n"); #endif aStatus = NS_FRAME_COMPLETE; // create the layout state nsBoxLayoutState state(aPresContext, aReflowState, aDesiredSize); // coelesce reflows if we are root. state.HandleReflow(this); nsSize computedSize(aReflowState.mComputedWidth,aReflowState.mComputedHeight); nsMargin m; m = aReflowState.mComputedBorderPadding; //GetBorderAndPadding(m); // this happens sometimes. So lets handle it gracefully. if (aReflowState.mComputedHeight == 0) { nsSize minSize(0,0); GetMinSize(state, minSize); computedSize.height = minSize.height - m.top - m.bottom; } nsSize prefSize(0,0); // if we are told to layout intrinic then get our preferred size. if (computedSize.width == NS_INTRINSICSIZE || computedSize.height == NS_INTRINSICSIZE) { nsSize minSize(0,0); nsSize maxSize(0,0); GetPrefSize(state, prefSize); GetMinSize(state, minSize); GetMaxSize(state, maxSize); BoundsCheck(minSize, prefSize, maxSize); } // get our desiredSize if (aReflowState.mComputedWidth == NS_INTRINSICSIZE) { computedSize.width = prefSize.width; } else { computedSize.width += m.left + m.right; } if (aReflowState.mComputedHeight == NS_INTRINSICSIZE) { computedSize.height = prefSize.height; } else { computedSize.height += m.top + m.bottom; } // handle reflow state min and max sizes if (computedSize.width > aReflowState.mComputedMaxWidth) computedSize.width = aReflowState.mComputedMaxWidth; if (computedSize.height > aReflowState.mComputedMaxHeight) computedSize.height = aReflowState.mComputedMaxHeight; if (computedSize.width < aReflowState.mComputedMinWidth) computedSize.width = aReflowState.mComputedMinWidth; if (computedSize.height < aReflowState.mComputedMinHeight) computedSize.height = aReflowState.mComputedMinHeight; nsRect r(mRect.x, mRect.y, computedSize.width, computedSize.height); SetBounds(state, r); // layout our children Layout(state); // ok our child could have gotten bigger. So lets get its bounds // get the ascent nscoord ascent = mRect.height; // Only call GetAscent when not doing Initial reflow while in PP // or when it is Initial reflow while in PP and a chrome doc // If called again with initial reflow it crashes because the // frames are fully constructed (I think). PRBool isChrome; PRBool isInitialPP = nsBoxFrame::IsInitialReflowForPrintPreview(state, isChrome); if (!isInitialPP || (isInitialPP && isChrome)) { GetAscent(state, ascent); } aDesiredSize.width = mRect.width; aDesiredSize.height = mRect.height; aDesiredSize.ascent = ascent; aDesiredSize.descent = 0; // NS_FRAME_OUTSIDE_CHILDREN is set in SetBounds() above if (mState & NS_FRAME_OUTSIDE_CHILDREN) { nsRect* overflowArea = GetOverflowAreaProperty(); NS_ASSERTION(overflowArea, "Failed to set overflow area property"); aDesiredSize.mOverflowArea = *overflowArea; } // max sure the max element size reflects // our min width nscoord* maxElementWidth = state.GetMaxElementWidth(); if (maxElementWidth) { nsSize minSize(0,0); GetMinSize(state, minSize); if (mRect.width > minSize.width) { if (aReflowState.mComputedWidth == NS_INTRINSICSIZE) { *maxElementWidth = minSize.width; } else { *maxElementWidth = mRect.width; } } else { *maxElementWidth = mRect.width; } } #ifdef DO_NOISY_REFLOW { printf("%p ** nsLBF(done) W:%d H:%d ", this, aDesiredSize.width, aDesiredSize.height); if (maxElementWidth) { printf("MW:%d\n", *maxElementWidth); } else { printf("MW:?\n"); } } #endif return NS_OK; }
float GUIAttrEdit::getLineH() { float w, h, d; printSize( "W", w, h, d ); return h; }