Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 2269bb274471fd2722517c2c0b740d7f > files > 278

rpm-devel-4.0.4-19mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>rpmio/rpmmalloc.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.17 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>rpmio/rpmmalloc.c</h1><a href="rpmmalloc_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 
00005 <span class="preprocessor">#include "<a class="code" href="system_8h.html">system.h</a>"</span>
00006 <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span>
00007 
00008 <span class="preprocessor">#if !defined(EXIT_FAILURE)</span>
00009 <span class="preprocessor"></span><span class="preprocessor">#define EXIT_FAILURE    1</span>
00010 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00011 <span class="preprocessor"></span>
00012 <span class="comment">/*@-modfilesys@*/</span>
<a name="l00013"></a><a class="code" href="rpmmalloc_8c.html#a0">00013</a> <span class="comment">/*@only@*/</span> <span class="keywordtype">void</span> *<a class="code" href="rpmmalloc_8c.html#a0">vmefail</a>(size_t size)
00014 {
00015     fprintf(stderr, <a class="code" href="system_8h.html#a18">_</a>(<span class="stringliteral">"memory alloc (%u bytes) returned NULL.\n"</span>), (<span class="keywordtype">unsigned</span>)size);
00016     exit(<a class="code" href="system_8h.html#a3">EXIT_FAILURE</a>);
00017     <span class="comment">/*@notreached@*/</span>
00018     <span class="keywordflow">return</span> NULL;
00019 }
00020 <span class="comment">/*@=modfilesys@*/</span>
00021 
00022 <span class="preprocessor">#if !(HAVE_MCHECK_H &amp;&amp; defined(__GNUC__)) &amp;&amp; !defined(__LCLINT__)</span>
00023 <span class="preprocessor"></span>
<a name="l00024"></a><a class="code" href="rpmmalloc_8c.html#a1">00024</a> <span class="comment">/*@out@*/</span> <span class="comment">/*@only@*/</span> <span class="keywordtype">void</span> * <a class="code" href="rpmmalloc_8c.html#a1">xmalloc</a> (size_t size)
00025 {
00026     <span class="keyword">register</span> <span class="keywordtype">void</span> *value;
00027     <span class="keywordflow">if</span> (size == 0) size++;
00028     value = malloc (size);
00029     <span class="keywordflow">if</span> (value == 0)
00030         value = <a class="code" href="rpmmalloc_8c.html#a0">vmefail</a>(size);
00031     <span class="keywordflow">return</span> value;
00032 }
00033 
<a name="l00034"></a><a class="code" href="rpmmalloc_8c.html#a2">00034</a> <span class="comment">/*@only@*/</span> <span class="keywordtype">void</span> * <a class="code" href="rpmmalloc_8c.html#a2">xcalloc</a> (size_t nmemb, size_t size)
00035 {
00036     <span class="keyword">register</span> <span class="keywordtype">void</span> *value;
00037     <span class="keywordflow">if</span> (size == 0) size++;
00038     <span class="keywordflow">if</span> (nmemb == 0) nmemb++;
00039     value = calloc (nmemb, size);
00040     <span class="keywordflow">if</span> (value == 0)
00041         value = <a class="code" href="rpmmalloc_8c.html#a0">vmefail</a>(size);
00042     <span class="keywordflow">return</span> value;
00043 }
00044 
<a name="l00045"></a><a class="code" href="rpmmalloc_8c.html#a3">00045</a> <span class="comment">/*@only@*/</span> <span class="keywordtype">void</span> * <a class="code" href="rpmmalloc_8c.html#a3">xrealloc</a> (<span class="comment">/*@only@*/</span> <span class="keywordtype">void</span> *ptr, size_t size)
00046 {
00047     <span class="keyword">register</span> <span class="keywordtype">void</span> *value;
00048     <span class="keywordflow">if</span> (size == 0) size++;
00049     value = realloc (ptr, size);
00050     <span class="keywordflow">if</span> (value == 0)
00051         value = <a class="code" href="rpmmalloc_8c.html#a0">vmefail</a>(size);
00052     <span class="keywordflow">return</span> value;
00053 }
00054 
<a name="l00055"></a><a class="code" href="rpmmalloc_8c.html#a4">00055</a> <span class="comment">/*@only@*/</span> <span class="keywordtype">char</span> * <a class="code" href="rpmmalloc_8c.html#a4">xstrdup</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *str)
00056 {
00057     size_t size = strlen(str) + 1;
00058     <span class="keywordtype">char</span> *newstr = (<span class="keywordtype">char</span> *) malloc (size);
00059     <span class="keywordflow">if</span> (newstr == 0)
00060         newstr = (<span class="keywordtype">char</span> *) <a class="code" href="rpmmalloc_8c.html#a0">vmefail</a>(size);
00061     strcpy (newstr, str);
00062     <span class="keywordflow">return</span> newstr;
00063 }
00064 
00065 <span class="preprocessor">#endif  </span><span class="comment">/* !(HAVE_MCHECK_H &amp;&amp; defined(__GNUC__)) */</span>
</pre></div><hr><address style="align: right;"><small>Generated on Thu Sep 12 22:15:02 2002 for rpm by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.17 </small></address>
</body>
</html>