zoukankan      html  css  js  c++  java
  • memblock.c

    ■ struct pa_memblock *pa_memblock_new(size_t length)
    memblock分配,分配类型是PA_MEMBLOCK_APPENDED。
    pa_memblock 和 数据是连续分配的,由pa_memblock中data指向分配的数据区域。

    ■ struct pa_memblock *pa_memblock_new_fixed(void *d, size_t length)
    memblock分配,分配类型是PA_MEMBLOCK_FIXED。
    将pa_memblock中data指向传来的数据d。与dynamic的区别,还不太清楚(从代码看不负责销毁数据d)

    ■ struct pa_memblock *pa_memblock_new_dynamic(void *d, size_t length)
    memblock分配,分配类型是PA_MEMBLOCK_DYNAMIC。
    将pa_memblock中data指向传来的数据d,从pa_memblock_unref看,dynamic这种方式还负责销毁数据d。

    ■ struct pa_memblock* pa_memblock_ref(struct pa_memblock*b)
    引用计数增1

    ■ void pa_memblock_unref(struct pa_memblock*b)
    引用计数减1,如果为引用计数为0,对memblock分配的buffer的释放。
    PA_MEMBLOCK_APPENDED : memblock + data
    PA_MEMBLOCK_FIXED : memblock
    PA_MEMBLOCK_DYNAMIC: memblock + data (外部申请的)

    ■ void pa_memblock_unref_fixed(struct pa_memblock *b)
    PA_MEMBLOCK_FIXED类型的释放,引用计数为1时,等同于pa_memblock_unref。
    引用计数大于1时,类型由PA_MEMBLOCK_FIXED转为PA_MEMBLOCK_DYNAMIC。
    疑问用户不知道这个变化,下次使用哪个函数释放pa_memblock_unref还是pa_memblock_unref_fixed?

    ■ unsigned pa_memblock_get_count(void)
    返回memblock_count

    ■ unsigned pa_memblock_get_total(void)
    返回memblock_total

  • 相关阅读:
    PHPEXCEL 导出多个sheet
    android adb.exe端口占用
    imageview 显示assets的图片

    Java中日期问题
    java中的定时器的实现样例
    Oracle数据库如何干净的删除
    MySQL索引相关知识
    JavaScript基础知识总结
    JDBC技术总结
  • 原文地址:https://www.cnblogs.com/renhl/p/12996643.html
Copyright © 2011-2022 走看看