$OpenBSD: patch-src_base_PdfXRefStream_cpp,v 1.2 2015/10/18 13:09:38 sthen Exp $

For some reason, alloca() doesn't seem to be working from C++ on OpenBSD,
returning a linker error, so convert to malloc() instead.

--- src/base/PdfXRefStream.cpp.orig	Fri May  2 23:17:50 2014
+++ src/base/PdfXRefStream.cpp	Sun Oct 18 13:51:24 2015
@@ -77,7 +77,11 @@ void PdfXRefStream::WriteSubSection( PdfOutputDevice*,
 void PdfXRefStream::WriteXRefEntry( PdfOutputDevice*, pdf_uint64 offset, pdf_gennum generation, 
                                     char cMode, pdf_objnum objectNumber ) 
 {
-    char * buffer = reinterpret_cast<char*>(alloca(m_bufferLen));
+    char * buffer = reinterpret_cast<char*>(malloc(m_bufferLen)); 
+    if( !buffer )
+    {
+        PODOFO_RAISE_ERROR( ePdfError_OutOfMemory );
+    }
 
     if( cMode == 'n' && objectNumber == m_pObject->Reference().ObjectNumber() )
         m_offset = offset;
@@ -89,6 +93,7 @@ void PdfXRefStream::WriteXRefEntry( PdfOutputDevice*, 
     memcpy( &buffer[1], reinterpret_cast<const char*>(&offset_be), sizeof(pdf_uint32) );
 
     m_pObject->GetStream()->Append( buffer, m_bufferLen );
+    free(buffer);
 }
 
 void PdfXRefStream::EndWrite( PdfOutputDevice* pDevice )
