Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/nsprpub/pr/src/misc/prerror.c
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* This Source Code Form is subject to the terms of the Mozilla Public
3
 * License, v. 2.0. If a copy of the MPL was not distributed with this
4
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6
#include "primpl.h"
7
8
#include <string.h>
9
#include <stdlib.h>
10
11
PR_IMPLEMENT(PRErrorCode) PR_GetError(void)
12
0
{
13
0
    PRThread *thread = PR_GetCurrentThread();
14
0
    return thread->errorCode;
15
0
}
16
17
PR_IMPLEMENT(PRInt32) PR_GetOSError(void)
18
0
{
19
0
    PRThread *thread = PR_GetCurrentThread();
20
0
    return thread->osErrorCode;
21
0
}
22
23
PR_IMPLEMENT(void) PR_SetError(PRErrorCode code, PRInt32 osErr)
24
0
{
25
0
    PRThread *thread = PR_GetCurrentThread();
26
0
    thread->errorCode = code;
27
0
    thread->osErrorCode = osErr;
28
0
    thread->errorStringLength = 0;
29
0
}
30
31
PR_IMPLEMENT(void) PR_SetErrorText(PRIntn textLength, const char *text)
32
0
{
33
0
    PRThread *thread = PR_GetCurrentThread();
34
0
35
0
    if (0 == textLength)
36
0
    {
37
0
      if (NULL != thread->errorString)
38
0
          PR_DELETE(thread->errorString);
39
0
      thread->errorStringSize = 0;
40
0
    }
41
0
    else
42
0
    {
43
0
      PRIntn size = textLength + 31;  /* actual length to allocate. Plus a little extra */
44
0
        if (thread->errorStringSize < textLength+1)  /* do we have room? */
45
0
        {
46
0
          if (NULL != thread->errorString)
47
0
              PR_DELETE(thread->errorString);
48
0
        thread->errorString = (char*)PR_MALLOC(size);
49
0
            if ( NULL == thread->errorString ) {
50
0
                thread->errorStringSize = 0;
51
0
                thread->errorStringLength = 0;
52
0
                return;
53
0
            }
54
0
            thread->errorStringSize = size;
55
0
      }
56
0
        memcpy(thread->errorString, text, textLength+1 );
57
0
    }
58
0
    thread->errorStringLength = textLength;
59
0
}
60
61
PR_IMPLEMENT(PRInt32) PR_GetErrorTextLength(void)
62
0
{
63
0
    PRThread *thread = PR_GetCurrentThread();
64
0
    return thread->errorStringLength;
65
0
}  /* PR_GetErrorTextLength */
66
67
PR_IMPLEMENT(PRInt32) PR_GetErrorText(char *text)
68
0
{
69
0
    PRThread *thread = PR_GetCurrentThread();
70
0
    if (0 != thread->errorStringLength)
71
0
        memcpy(text, thread->errorString, thread->errorStringLength+1);
72
0
    return thread->errorStringLength;
73
0
}  /* PR_GetErrorText */
74
75