<!--
SPDX-FileCopyrightText: The Apache Software Foundation

SPDX-License-Identifier: Apache-2.0
-->

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Arrow.BooleanArray.new</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <meta charset="utf-8" />

  
  <meta property="og:type" content="website"/>

  

  
  <meta property="og:title" content="Arrow.BooleanArray.new"/>
  <meta property="og:description" content="Reference for Arrow.BooleanArray.new"/>
  <meta name="twitter:title" content="Arrow.BooleanArray.new"/>
  <meta name="twitter:description" content="Reference for Arrow.BooleanArray.new"/>


  
  <meta name="twitter:card" content="summary"/>

  
  
  
  

  <link rel="stylesheet" href="style.css" type="text/css" />

  

  
  <script src="urlmap.js"></script>
  
  
  <script src="fzy.js"></script>
  <script src="search.js"></script>
  
  <script src="main.js"></script>

  
</head>

<body>
  <div id="body-wrapper" tabindex="-1">

    <nav class="sidebar devhelp-hidden">
      
      
      <div class="search section">
        <form id="search-form" autocomplete="off">
          <input id="search-input" type="text" name="do-not-autocomplete" placeholder="Click, or press 's' to search" autocomplete="off"/>
        </form>
      </div>
      
      <div class="section namespace">
        <h3><a href="index.html">Arrow</a></h3>
        <p>API Version: 25.0</p>
        
        <p>Library Version: 25.0.0.dev</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a href="class.BooleanArray.html">BooleanArray</a>
  </div>
</div>
<div class="section">
  <h5>Constructors</h5>
  <div class="links">
  
    <a class="method current" href="ctor.BooleanArray.new.html">new</a>
  
  </div>
</div>

      <div class="section generator">
        <p>Generated by <a href="https://gitlab.gnome.org/GNOME/gi-docgen">gi-docgen</a> 2025.3</p>
      </div>
    </nav>

    <button id="btn-to-top" class="hidden"><span class="up-arrow"></span></button>

    
<section id="main" class="content">
  <header>
    <h3>Constructor</h3>
    <h1><a href="index.html">Arrow</a><span class="sep"></span><a href="class.BooleanArray.html">BooleanArray</a><span class="sep"></span>new</h1>
  </header>

  <section>
    <div class="docblock">
      <p><span class="emblem available">since: 0.4.0</span></p>
    </div>
    <div class="declaration toggle-wrapper">
      <h4 id="declaration" style="display:flex;">
        Declaration
        <a href="#declaration" class="anchor"></a>
        
        <a class="srclink" title="go to source location" href="https://github.com/apache/arrow/blob/main/c_glib/arrow-glib/basic-array.h#L231">[src]</a>
        
      </h4>

      <div class="docblock">
        <pre><code><div class="highlight"><pre><span></span><span class="n">GArrowBooleanArray</span><span class="o">*</span>
<span class="n">garrow_boolean_array_new</span><span class="w"> </span><span class="p">(</span>
<span class="w">  </span><span class="n">gint64</span><span class="w"> </span><span class="n">length</span><span class="p">,</span>
<span class="w">  </span><span class="n">GArrowBuffer</span><span class="o">*</span><span class="w"> </span><span class="n">data</span><span class="p">,</span>
<span class="w">  </span><span class="n">GArrowBuffer</span><span class="o">*</span><span class="w"> </span><span class="n">null_bitmap</span><span class="p">,</span>
<span class="w">  </span><span class="n">gint64</span><span class="w"> </span><span class="n">n_nulls</span>
<span class="p">)</span>
</pre></div>
</code></pre>
      </div>
    </div>

    <div class="description toggle-wrapper">
      <h4 id="description" style="display:flex;">
        Description
        <a href="#description" class="anchor"></a>
        
      </h4>

      <div class="docblock">
        <p>No description available.</p>
      </div>

      <div class="docblock">
        
        <p>Available since: 0.4.0</p>
        
        
        
        
        
      </div>

      
    </div>

    
    <div class="parameters toggle-wrapper">
      <h4 id="parameters">
        Parameters
        <a href="#parameters" class="anchor"></a>
      </h4>

      <div class="docblock">
        <dl class="arguments">
          
          <dt class="arg-name"><code>length</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gint64</code></p>
            <p>The number of&nbsp;elements.</p>
            <table>
            
            
            
            
            
            
            
            
            
            </table>
          </dd>
          
          <dt class="arg-name"><code>data</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<a href="class.Buffer.html"><code>GArrowBuffer</code></a></p>
            <p>The binary data in Arrow format of the&nbsp;array.</p>
            <table>
            
            
            
            
            
            
            
            <tr><td title="transfer: none">The data is owned by the caller of the function.</td></tr>
            
            </table>
          </dd>
          
          <dt class="arg-name"><code>null_bitmap</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<a href="class.Buffer.html"><code>GArrowBuffer</code></a></p>
            <p>The bitmap that shows null elements. The
  N-th element is null when the N-th bit is 0, not null otherwise.
  If the array has no null elements, the bitmap must be <code>NULL</code> and
  <code>n_nulls</code> is&nbsp;0.</p>
            <table>
            
            <tr><td>The argument can be <code>NULL</code>.</td></tr>
            
            
            
            
            
            <tr><td title="transfer: none">The data is owned by the caller of the function.</td></tr>
            
            </table>
          </dd>
          
          <dt class="arg-name"><code>n_nulls</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gint64</code></p>
            <p>The number of null elements. If -1 is specified, the
  number of nulls are computed from <code>null_bitmap</code>.</p>
            <table>
            
            
            
            
            
            
            
            
            
            </table>
          </dd>
          

          
        </dl>
      </div>
    </div>
    

    
    <div class="return-value toggle-wrapper">
      <h4 id="return-value">
        Return value
        <a href="#return-value" class="anchor"></a>
      </h4>

      <div class="docblock">
        <div class="returns">
          <div class="arg-description">
            <p><em>Type:</em>&nbsp;<a href="class.BooleanArray.html"><code>GArrowBooleanArray</code></a></p>
            <p>A newly created <code>GArrowBooleanArray</code>.</p>
          </div>
          <div>
            <table>
            
            
            
            <tr><td title="transfer: full">The caller of the function takes ownership of the data, and is responsible for freeing it.</td></tr>
            
            
            </table>
          </div>
        </div>
      </div>
    </div>
    
  </section>
</section>


    

    <section id="search" class="content hidden"></section>

    <footer>
    
    </footer>
  </div>
</body>
</html>