   if (numRLEs == 0 && numDeltas == 0) {
     const int inputId = vals_id;
     const int bpId = ++vals_id;
-    nvcompConfigAddBP(&config, inputId, maxSegmentSize, bpId, type);
-
-    config.nodes[bpId].length = metadata->getNumElementsOf(bpId);
+    nvcompConfigAddBP(config.get(), inputId, maxSegmentSize, bpId, type);
+
+    config->nodes[bpId].length = metadata->getNumElementsOf(bpId);
   }
 
   return config;

 *            Older API definitions below.  New API calls rely on them.
 **************************************************************************************/

nvcompIntConfig_t* createConfig(const CascadedMetadata* const metadata)
{
  nvcompIntConfig_t* config = new nvcompIntConfig_t();
  *config = generateConfig(metadata);

  return config;
}

void destroyConfig(nvcompIntConfig_t* config)

  *handle = id;
  nvcompIntHandle_t& h = handles[id];

  h.config = std::move(config);
  h.stream = stream;

  h.workspaceBytes = workspaceBytes;
