• 大小: 1.76MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-15
  • 语言: 其他
  • 标签: upx  vs2015  

资源简介

upx代码,在vs2015下编译通过,能够调试,适合在windows下面进行二次开发和调试

资源截图

代码片段和文件信息

/* alloc.c -- memory allocation

   This file is part of the UCL data compression library.

   Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer
   All Rights Reserved.

   The UCL library is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License as
   published by the Free Software Foundation; either version 2 of
   the License or (at your option) any later version.

   The UCL library is distributed in the hope that it will be useful
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with the UCL library; see the file COPYING.
   If not write to the Free Software Foundation Inc.
   59 Temple Place - Suite 330 Boston MA 02111-1307 USA.

   Markus F.X.J. Oberhumer
   
   http://www.oberhumer.com/opensource/ucl/
 */


#include “ucl_conf.h“


/***********************************************************************
// implementation
************************************************************************/

#if defined(__UCL_MMODEL_HUGE)

#define acc_hsize_t             ucl_uint
#define acc_hvoid_p             ucl_voidp
#define ACCLIB_PUBLIC(rf)      static r __UCL_CDECL f
#define acc_halloc              ucl_malloc_internal
#define acc_hfree               ucl_free_internal
#include “acc/acclib/halloc.ch“
#undef ACCLIB_PUBLIC

#else

UCL_PRIVATE(ucl_voidp)
ucl_malloc_internal(ucl_uint size)
{
    ucl_voidp p = NULL;
    if (size < ~(size_t)0)
        p = (ucl_voidp) malloc((size_t) size);
    return p;
}


UCL_PRIVATE(void)
ucl_free_internal(ucl_voidp p)
{
    if (p)
        free(p);
}

#endif


/***********************************************************************
// public interface using the global hooks
************************************************************************/

/* global allocator hooks */
static ucl_malloc_hook_t ucl_malloc_hook = ucl_malloc_internal;
static ucl_free_hook_t ucl_free_hook = ucl_free_internal;

UCL_PUBLIC(void)
ucl_set_malloc_hooks(ucl_malloc_hook_t a ucl_free_hook_t f)
{
    ucl_malloc_hook = ucl_malloc_internal;
    ucl_free_hook = ucl_free_internal;
    if (a)
        ucl_malloc_hook = a;
    if (f)
        ucl_free_hook = f;
}

UCL_PUBLIC(void)
ucl_get_malloc_hooks(ucl_malloc_hook_t* a ucl_free_hook_t* f)
{
    if (a)
        *a = ucl_malloc_hook;
    if (f)
        *f = ucl_free_hook;
}


UCL_PUBLIC(ucl_voidp)
ucl_malloc(ucl_uint size)
{
    if (size <= 0)
        return NULL;
    return ucl_malloc_hook(size);
}

UCL_PUBLIC(ucl_voidp)
ucl_alloc(ucl_uint nelems ucl_uint size)
{
    ucl_uint s = nelems * size;
    if (nelems <= 0 || s / nelems != size)
        return NULL;
    return ucl_malloc(s);
}


UCL_PUBLIC(void)
ucl_free(ucl_voidp p)
{
    if (p)
        ucl_free_hook(p);
}


/*
vi:ts=4:et
*/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-07-25 06:34  UPX-Visual-Studio-master\
     文件         279  2017-07-25 06:34  UPX-Visual-Studio-master\README.md
     目录           0  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\
     目录           0  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\
     文件       18094  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\ACC_LICENSE
     文件        2259  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc.h
     文件        4080  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_arch.h
     文件       17271  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_auto.h
     文件        5207  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_cc.h
     文件       16198  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_chk.ch
     文件        3010  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_chkr.ch
     文件        4703  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_cxx.h
     文件        6593  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_defs.h
     文件        1263  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_incd.h
     文件        1650  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_ince.h
     文件        2753  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_inci.h
     文件        6477  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_init.h
     文件        1566  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_lib.ch
     文件       18853  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_lib.h
     文件        5415  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_mm.h
     文件        6725  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_os.h
     文件       10582  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acc_type.h
     目录           0  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\
     文件        8489  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\bele.ch
     文件        2363  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\dosalloc.ch
     文件        4071  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\fnmatch.ch
     文件         924  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\getopt.ch
     文件        3987  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\halloc.ch
     文件        2904  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\hfread.ch
     文件        2483  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\hmemcpy.ch
     文件        2932  2017-07-25 06:34  UPX-Visual-Studio-master\ucl\acc\acclib\hread.ch
............此处省略529个文件信息

评论

共有 条评论