MdeModulePkg/RegularExpressionDxe: Make oniguruma a submodule in edk2.
Use submodule way to access oniguruma. And upgrade oniguruma version from v6.9.3 to v6.9.4_mark1. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2073 Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
a5d8a39963
commit
48b6c60cc6
@@ -0,0 +1,88 @@
|
||||
/** @file
|
||||
|
||||
Module to rewrite stdlib references within Oniguruma
|
||||
|
||||
(C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
#include "OnigurumaUefiPort.h"
|
||||
|
||||
#define ONIGMEM_HEAD_SIGNATURE SIGNATURE_32('o','m','h','d')
|
||||
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINTN Size;
|
||||
} ONIGMEM_HEAD;
|
||||
|
||||
#define ONIGMEM_OVERHEAD sizeof(ONIGMEM_HEAD)
|
||||
|
||||
int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...)
|
||||
{
|
||||
VA_LIST Marker;
|
||||
int NumberOfPrinted;
|
||||
|
||||
VA_START (Marker, fmt);
|
||||
NumberOfPrinted = (int)AsciiVSPrint (str, sizeOfBuffer, fmt, Marker);
|
||||
VA_END (Marker);
|
||||
|
||||
return NumberOfPrinted;
|
||||
}
|
||||
|
||||
int OnigStrCmp (const char* Str1, const char* Str2)
|
||||
{
|
||||
return (int)AsciiStrCmp (Str1, Str2);
|
||||
}
|
||||
|
||||
int strlen(const char* str)
|
||||
{
|
||||
return strlen_s(str, MAX_STRING_SIZE);
|
||||
}
|
||||
|
||||
void * malloc (size_t size)
|
||||
{
|
||||
ONIGMEM_HEAD *PoolHdr;
|
||||
UINTN NewSize;
|
||||
VOID *Data;
|
||||
|
||||
NewSize = (UINTN)(size) + ONIGMEM_OVERHEAD;
|
||||
|
||||
Data = AllocatePool (NewSize);
|
||||
if (Data != NULL) {
|
||||
PoolHdr = (ONIGMEM_HEAD *)Data;
|
||||
PoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;
|
||||
PoolHdr->Size = size;
|
||||
|
||||
return (VOID *)(PoolHdr + 1);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void * realloc (void *ptr, size_t size)
|
||||
{
|
||||
ONIGMEM_HEAD *OldPoolHdr;
|
||||
ONIGMEM_HEAD *NewPoolHdr;
|
||||
UINTN OldSize;
|
||||
UINTN NewSize;
|
||||
VOID *Data;
|
||||
|
||||
NewSize = (UINTN)size + ONIGMEM_OVERHEAD;
|
||||
Data = AllocatePool (NewSize);
|
||||
if (Data != NULL) {
|
||||
NewPoolHdr = (ONIGMEM_HEAD *)Data;
|
||||
NewPoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;
|
||||
NewPoolHdr->Size = size;
|
||||
if (ptr != NULL) {
|
||||
OldPoolHdr = (ONIGMEM_HEAD *)ptr - 1;
|
||||
ASSERT (OldPoolHdr->Signature == ONIGMEM_HEAD_SIGNATURE);
|
||||
OldSize = OldPoolHdr->Size;
|
||||
|
||||
CopyMem ((VOID *)(NewPoolHdr + 1), ptr, MIN (OldSize, size));
|
||||
FreePool ((VOID *)OldPoolHdr);
|
||||
}
|
||||
return (VOID *)(NewPoolHdr + 1);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user