本文整理汇总了C++中PR_MIN函数的典型用法代码示例。如果您正苦于以下问题:C++ PR_MIN函数的具体用法?C++ PR_MIN怎么用?C++ PR_MIN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PR_MIN函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: memcpy
PRBool
gfxImageSurface::CopyFrom(gfxImageSurface *other)
{
if (other->mSize != mSize)
{
return PR_FALSE;
}
if (other->mFormat != mFormat &&
!(other->mFormat == ImageFormatARGB32 && mFormat == ImageFormatRGB24) &&
!(other->mFormat == ImageFormatRGB24 && mFormat == ImageFormatARGB32))
{
return PR_FALSE;
}
if (other->mStride == mStride) {
memcpy (mData, other->mData, mStride * mSize.height);
} else {
int lineSize = PR_MIN(other->mStride, mStride);
for (int i = 0; i < mSize.height; i++) {
unsigned char *src = other->mData + other->mStride * i;
unsigned char *dst = mData + mStride * i;
memcpy (dst, src, lineSize);
}
}
return PR_TRUE;
}
开发者ID:EdgarChen,项目名称:mozilla-cvs-history,代码行数:29,代码来源:gfxImageSurface.cpp
示例2: double
nsSMILTimeValue
nsSMILTimedElement::GetRepeatDuration()
{
nsSMILTimeValue result;
if (mRepeatCount.IsDefinite() && mRepeatDur.IsResolved()) {
if (mSimpleDur.IsResolved()) {
nsSMILTime activeDur = mRepeatCount * double(mSimpleDur.GetMillis());
result.SetMillis(PR_MIN(activeDur, mRepeatDur.GetMillis()));
} else {
result = mRepeatDur;
}
} else if (mRepeatCount.IsDefinite() && mSimpleDur.IsResolved()) {
nsSMILTime activeDur = mRepeatCount * double(mSimpleDur.GetMillis());
result.SetMillis(activeDur);
} else if (mRepeatDur.IsResolved()) {
result = mRepeatDur;
} else if (mRepeatCount.IsIndefinite()) {
result.SetIndefinite();
} else {
result = mSimpleDur;
}
return result;
}
开发者ID:AllenDou,项目名称:firefox,代码行数:25,代码来源:nsSMILTimedElement.cpp
示例3: SSL_GetPreliminaryChannelInfo
SECStatus
SSL_GetPreliminaryChannelInfo(PRFileDesc *fd,
SSLPreliminaryChannelInfo *info,
PRUintn len)
{
sslSocket *ss;
SSLPreliminaryChannelInfo inf;
/* Check if we can properly return the length of data written and that
* we're not asked to return more information than we know how to provide.
*/
if (!info || len < sizeof inf.length || len > sizeof inf) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
ss = ssl_FindSocket(fd);
if (!ss) {
SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetPreliminaryChannelInfo",
SSL_GETPID(), fd));
return SECFailure;
}
memset(&inf, 0, sizeof(inf));
inf.length = PR_MIN(sizeof(inf), len);
inf.valuesSet = ss->ssl3.hs.preliminaryInfo;
inf.protocolVersion = ss->version;
inf.cipherSuite = ss->ssl3.hs.cipher_suite;
memcpy(info, &inf, inf.length);
return SECSuccess;
}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:33,代码来源:sslinfo.c
示例4: PR_MIN
nsresult
nsMsgSearchValidityTable::GetAvailableOperators(nsMsgSearchAttribValue aAttribute,
PRUint32 *aLength,
nsMsgSearchOpValue **aResult)
{
nsMsgSearchAttribValue attr;
if (aAttribute == nsMsgSearchAttrib::Default)
attr = m_defaultAttrib;
else
attr = PR_MIN(aAttribute, nsMsgSearchAttrib::OtherHeader);
PRUint32 totalOperators=0;
PRInt32 i;
for (i=0; i<nsMsgSearchOp::kNumMsgSearchOperators; i++) {
if (m_table[attr][i].bitAvailable)
totalOperators++;
}
nsMsgSearchOpValue *array = (nsMsgSearchOpValue*)
nsMemory::Alloc(sizeof(nsMsgSearchOpValue) * totalOperators);
NS_ENSURE_TRUE(array, NS_ERROR_OUT_OF_MEMORY);
PRUint32 numStored = 0;
for (i=0; i<nsMsgSearchOp::kNumMsgSearchOperators;i++) {
if (m_table[attr][i].bitAvailable)
array[numStored++] = i;
}
NS_ASSERTION(totalOperators == numStored, "Search Operators not lining up");
*aLength = totalOperators;
*aResult = array;
return NS_OK;
}
开发者ID:binoc-software,项目名称:mozilla-cvs,代码行数:33,代码来源:nsMsgSearchAdapter.cpp
示例5: PR_MIN
void nsBufferDecoderSupport::FillBuffer(const char ** aSrc, PRInt32 aSrcLength)
{
PRInt32 bcr = PR_MIN(mBufferCapacity - mBufferLength, aSrcLength);
memcpy(mBuffer + mBufferLength, *aSrc, bcr);
mBufferLength += bcr;
(*aSrc) += bcr;
}
开发者ID:LittleForker,项目名称:mozilla-central,代码行数:7,代码来源:nsUCSupport.cpp
示例6: FindSafeLength
static PRInt32 FindSafeLength(nsThebesRenderingContext* aContext,
const char *aString, PRUint32 aLength,
PRUint32 aMaxChunkLength)
{
// Since it's ASCII, we don't need to worry about clusters or RTL
return PR_MIN(aLength, aMaxChunkLength);
}
开发者ID:MozillaOnline,项目名称:gecko-dev,代码行数:7,代码来源:nsThebesRenderingContext.cpp
示例7: SSLInt_UpdateSSLv2ClientRandom
/* Use this function to update the ClientRandom of a client's handshake state
* after replacing its ClientHello message. We for example need to do this
* when replacing an SSLv3 ClientHello with its SSLv2 equivalent. */
SECStatus SSLInt_UpdateSSLv2ClientRandom(PRFileDesc *fd, uint8_t *rnd,
size_t rnd_len, uint8_t *msg,
size_t msg_len) {
sslSocket *ss = ssl_FindSocket(fd);
if (!ss) {
return SECFailure;
}
SECStatus rv = ssl3_InitState(ss);
if (rv != SECSuccess) {
return rv;
}
rv = ssl3_RestartHandshakeHashes(ss);
if (rv != SECSuccess) {
return rv;
}
// Ensure we don't overrun hs.client_random.
rnd_len = PR_MIN(SSL3_RANDOM_LENGTH, rnd_len);
// Zero the client_random struct.
PORT_Memset(&ss->ssl3.hs.client_random, 0, SSL3_RANDOM_LENGTH);
// Copy over the challenge bytes.
size_t offset = SSL3_RANDOM_LENGTH - rnd_len;
PORT_Memcpy(&ss->ssl3.hs.client_random.rand[offset], rnd, rnd_len);
// Rehash the SSLv2 client hello message.
return ssl3_UpdateHandshakeHashes(ss, msg, msg_len);
}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:34,代码来源:libssl_internals.c
示例8: NS_ConsumeStream
NS_IMETHODIMP
nsJSONListener::OnDataAvailable(nsIRequest *aRequest, nsISupports *aContext,
nsIInputStream *aStream,
PRUint32 aOffset, PRUint32 aLength)
{
PRUint32 contentLength;
aStream->Available(&contentLength);
nsresult rv = NS_OK;
if (mNeedsConverter && mSniffBuffer.Length() < 4) {
PRUint32 readCount = (aLength < 4) ? aLength : 4;
rv = NS_ConsumeStream(aStream, readCount, mSniffBuffer);
NS_ENSURE_SUCCESS(rv, rv);
if (mSniffBuffer.Length() < 4)
return NS_OK;
}
char buffer[JSON_STREAM_BUFSIZE];
unsigned long bytesRemaining = aLength - mSniffBuffer.Length();
while (bytesRemaining) {
unsigned int bytesRead;
rv = aStream->Read(buffer,
PR_MIN(sizeof(buffer), bytesRemaining),
&bytesRead);
NS_ENSURE_SUCCESS(rv, rv);
rv = ProcessBytes(buffer, bytesRead);
NS_ENSURE_SUCCESS(rv, rv);
bytesRemaining -= bytesRead;
}
return rv;
}
开发者ID:amyvmiwei,项目名称:firefox,代码行数:33,代码来源:nsJSON.cpp
示例9: SSL_GetCipherSuiteInfo
SECStatus
SSL_GetCipherSuiteInfo(PRUint16 cipherSuite,
SSLCipherSuiteInfo *info, PRUintn len)
{
unsigned int i;
/* Check if we can properly return the length of data written and that
* we're not asked to return more information than we know how to provide.
*/
if (!info || len < sizeof suiteInfo[0].length ||
len > sizeof suiteInfo[0]) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
len = PR_MIN(len, sizeof suiteInfo[0]);
for (i = 0; i < NUM_SUITEINFOS; i++) {
if (suiteInfo[i].cipherSuite == cipherSuite) {
memcpy(info, &suiteInfo[i], len);
info->length = len;
return SECSuccess;
}
}
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
开发者ID:leplatrem,项目名称:gecko-dev,代码行数:25,代码来源:sslinfo.c
示例10: PREF_GetCharPref
nsresult PREF_GetCharPref(const char *pref_name, char * return_buffer, int * length, PRBool get_default)
{
if (!gHashTable.ops)
return NS_ERROR_NOT_INITIALIZED;
nsresult rv = NS_ERROR_UNEXPECTED;
char* stringVal;
PrefHashEntry* pref = pref_HashTableLookup(pref_name);
if (pref)
{
if (get_default || PREF_IS_LOCKED(pref) || !PREF_HAS_USER_VALUE(pref))
stringVal = pref->defaultPref.stringVal;
else
stringVal = pref->userPref.stringVal;
if (stringVal)
{
if (*length <= 0)
*length = PL_strlen(stringVal) + 1;
else
{
PL_strncpy(return_buffer, stringVal, PR_MIN((size_t)*length - 1, PL_strlen(stringVal) + 1));
return_buffer[*length - 1] = '\0';
}
rv = NS_OK;
}
}
return rv;
}
开发者ID:ahadzi,项目名称:celtx,代码行数:32,代码来源:prefapi.cpp
示例11: MD2_Update
void
MD2_Update(MD2Context *cx, const unsigned char *input, unsigned int inputLen)
{
PRUint32 bytesToConsume;
/* Fill the remaining input buffer. */
if (cx->unusedBuffer != MD2_BUFSIZE) {
bytesToConsume = PR_MIN(inputLen, cx->unusedBuffer);
memcpy(&cx->X[MD2_INPUT + (MD2_BUFSIZE - cx->unusedBuffer)],
input, bytesToConsume);
if (cx->unusedBuffer + bytesToConsume >= MD2_BUFSIZE)
md2_compress(cx);
inputLen -= bytesToConsume;
input += bytesToConsume;
}
/* Iterate over 16-byte chunks of the input. */
while (inputLen >= MD2_BUFSIZE) {
memcpy(&cx->X[MD2_INPUT], input, MD2_BUFSIZE);
md2_compress(cx);
inputLen -= MD2_BUFSIZE;
input += MD2_BUFSIZE;
}
/* Copy any input that remains into the buffer. */
if (inputLen)
memcpy(&cx->X[MD2_INPUT], input, inputLen);
cx->unusedBuffer = MD2_BUFSIZE - inputLen;
}
开发者ID:AOSC-Dev,项目名称:nss-purified,代码行数:29,代码来源:md2.c
示例12: SSL_GetPreliminaryChannelInfo
SECStatus
SSL_GetPreliminaryChannelInfo(PRFileDesc *fd,
SSLPreliminaryChannelInfo *info,
PRUintn len)
{
sslSocket *ss;
SSLPreliminaryChannelInfo inf;
if (!info || len < sizeof inf.length) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
ss = ssl_FindSocket(fd);
if (!ss) {
SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetPreliminaryChannelInfo",
SSL_GETPID(), fd));
return SECFailure;
}
if (ss->version < SSL_LIBRARY_VERSION_3_0) {
PORT_SetError(SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION);
return SECFailure;
}
memset(&inf, 0, sizeof(inf));
inf.length = PR_MIN(sizeof(inf), len);
inf.valuesSet = ss->ssl3.hs.preliminaryInfo;
inf.protocolVersion = ss->version;
inf.cipherSuite = ss->ssl3.hs.cipher_suite;
memcpy(info, &inf, inf.length);
return SECSuccess;
}
开发者ID:ekr,项目名称:nss-old,代码行数:35,代码来源:sslinfo.c
示例13: while
NS_IMETHODIMP
nsIncrementalDownload::OnDataAvailable(nsIRequest *request,
nsISupports *context,
nsIInputStream *input,
PRUint32 offset,
PRUint32 count)
{
while (count) {
PRUint32 space = mChunkSize - mChunkLen;
PRUint32 n, len = PR_MIN(space, count);
nsresult rv = input->Read(mChunk + mChunkLen, len, &n);
if (NS_FAILED(rv))
return rv;
if (n != len)
return NS_ERROR_UNEXPECTED;
count -= n;
mChunkLen += n;
if (mChunkLen == mChunkSize)
FlushChunk();
}
if (PR_Now() > mLastProgressUpdate + UPDATE_PROGRESS_INTERVAL)
UpdateProgress();
return NS_OK;
}
开发者ID:LittleForker,项目名称:mozilla-central,代码行数:29,代码来源:nsIncrementalDownload.cpp
示例14: ResetIfSet
PRBool
nsAttrValue::ParseSpecialIntValue(const nsAString& aString,
PRBool aCanBePercent)
{
ResetIfSet();
PRInt32 ec;
nsAutoString tmp(aString);
PRInt32 val = tmp.ToInteger(&ec);
if (NS_FAILED(ec)) {
return PR_FALSE;
}
val = PR_MAX(val, 0);
val = PR_MIN(val, NS_ATTRVALUE_INTEGERTYPE_MAXVALUE);
// % (percent)
// XXX RFindChar means that 5%x will be parsed!
if (aCanBePercent && tmp.RFindChar('%') >= 0) {
if (val > 100) {
val = 100;
}
SetIntValueAndType(val, ePercent);
return PR_TRUE;
}
// Straight number is interpreted as integer
SetIntValueAndType(val, eInteger);
return PR_TRUE;
}
开发者ID:EdgarChen,项目名称:mozilla-cvs-history,代码行数:31,代码来源:nsAttrValue.cpp
示例15: PaintCheckMark
static void
PaintCheckMark(nsIRenderingContext& aRenderingContext,
const nsRect& aRect)
{
// Points come from the coordinates on a 7X7 unit box centered at 0,0
const PRInt32 checkPolygonX[] = { -3, -1, 3, 3, -1, -3 };
const PRInt32 checkPolygonY[] = { -1, 1, -3, -1, 3, 1 };
const PRInt32 checkNumPoints = sizeof(checkPolygonX) / sizeof(PRInt32);
const PRInt32 checkSize = 9; // This is value is determined by adding 2
// units to pad the 7x7 unit checkmark
// Scale the checkmark based on the smallest dimension
nscoord paintScale = PR_MIN(aRect.width, aRect.height) / checkSize;
nsPoint paintCenter(aRect.x + aRect.width / 2,
aRect.y + aRect.height / 2);
nsPoint paintPolygon[checkNumPoints];
// Convert checkmark for screen rendering
for (PRInt32 polyIndex = 0; polyIndex < checkNumPoints; polyIndex++) {
paintPolygon[polyIndex] = paintCenter +
nsPoint(checkPolygonX[polyIndex] * paintScale,
checkPolygonY[polyIndex] * paintScale);
}
aRenderingContext.FillPolygon(paintPolygon, checkNumPoints);
}
开发者ID:ahadzi,项目名称:celtx,代码行数:26,代码来源:nsGfxCheckboxControlFrame.cpp
示例16: NS_NOTREACHED
void nsIntervalSet::IncludeInterval(coord_type aBegin, coord_type aEnd)
{
Interval *newInterval = static_cast<Interval*>
((*mAlloc)(sizeof(Interval), mAllocatorClosure));
if (!newInterval) {
NS_NOTREACHED("allocation failure");
return;
}
new(newInterval) Interval(aBegin, aEnd);
Interval **current = &mList;
while (*current && (*current)->mEnd < aBegin)
current = &(*current)->mNext;
newInterval->mNext = *current;
*current = newInterval;
Interval *subsumed = newInterval->mNext;
while (subsumed && subsumed->mBegin <= aEnd) {
newInterval->mBegin = PR_MIN(newInterval->mBegin, subsumed->mBegin);
newInterval->mEnd = PR_MAX(newInterval->mEnd, subsumed->mEnd);
newInterval->mNext = subsumed->mNext;
FreeInterval(subsumed);
subsumed = newInterval->mNext;
}
}
开发者ID:ahadzi,项目名称:celtx,代码行数:26,代码来源:nsIntervalSet.cpp
示例17: ENSURE_CALLED_BEFORE_ASYNC_OPEN
NS_IMETHODIMP
HttpBaseChannel::SetRedirectionLimit(PRUint32 value)
{
ENSURE_CALLED_BEFORE_ASYNC_OPEN();
mRedirectionLimit = PR_MIN(value, 0xff);
return NS_OK;
}
开发者ID:mmmulani,项目名称:v8monkey,代码行数:8,代码来源:HttpBaseChannel.cpp
示例18: GetNewResizingIncrement
PRInt32
nsHTMLEditor::GetNewResizingY(PRInt32 aX, PRInt32 aY)
{
PRInt32 resized = mResizedObjectY +
GetNewResizingIncrement(aX, aY, kY) * mYIncrementFactor;
PRInt32 max = mResizedObjectY + mResizedObjectHeight;
return PR_MIN(resized, max);
}
开发者ID:rn10950,项目名称:RetroZilla,代码行数:8,代码来源:nsHTMLObjectResizer.cpp
示例19: GetNamedFragmentOffsets
/*-----------------------------------------------------------------
GetNamedFragmentOffsets
Get the offsets into the data fork of the named fragment,
by reading the 'cfrg' resoruce.
-----------------------------------------------------------------*/
OSErr GetNamedFragmentOffsets(const FSSpec *fileSpec, const char* fragmentName,
UInt32 *outOffset, UInt32 *outLength)
{
CFragResourceHandle cFragHandle;
short fileRefNum;
OSErr err = noErr;
fileRefNum = FSpOpenResFile(fileSpec, fsRdPerm);
err = ResError();
if (err != noErr) return err;
cFragHandle = (CFragResourceHandle)Get1Resource(kCFragResourceType, kCFragResourceID);
if (!cFragHandle)
{
err = resNotFound;
goto done;
}
/* nothing here moves memory, so no need to lock the handle */
err = cfragNoLibraryErr; /* in case of failure */
*outOffset = 0;
*outLength = 0;
/* Now look for the named fragment */
if ((**cFragHandle).memberCount > 0)
{
CFragResourceMemberPtr memberPtr;
UInt16 i;
for ( i = 0, memberPtr = &(**cFragHandle).firstMember;
i < (**cFragHandle).memberCount;
i ++, memberPtr = (CFragResourceMemberPtr)((char *)memberPtr + memberPtr->memberSize))
{
char memberName[256];
UInt16 nameLen = PR_MIN(memberPtr->name[0], 255);
// avoid malloc here for speed
strncpy(memberName, (char *)&memberPtr->name[1], nameLen);
memberName[nameLen] = '\0';
// fragment names are case insensitive, so act like the system
if (PL_strcasecmp(memberName, fragmentName) == 0)
{
*outOffset = memberPtr->offset;
*outLength = memberPtr->length;
err = noErr;
break;
}
}
}
/* Resource handle will go away when the res fork is closed */
done:
CloseResFile(fileRefNum);
return err;
}
开发者ID:AbrahamJewowich,项目名称:FreeSWITCH,代码行数:66,代码来源:macdll.c
示例20: PR_MIN
PRUint32 KeyboardLayout::GetUniChars (PRUnichar* aUniChars, PRUint8* aShiftStates, PRUint32 aMaxChars) const
{
PRUint32 chars = PR_MIN (mNumOfChars, aMaxChars);
memcpy (aUniChars, mChars, chars * sizeof (PRUnichar));
memcpy (aShiftStates, mShiftStates, chars);
return chars;
}
开发者ID:MozillaOnline,项目名称:gecko-dev,代码行数:9,代码来源:nsKeyboardLayout.cpp
注:本文中的PR_MIN函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论