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

  • 相关阅读:
    (转)C# BackgroundWorker组件的原理分析
    (转)App.Config详解及读写操作
    (转)C# 控制蜂鸣器发声
    存储过程小例子
    DB通用类:MySQL通用类
    poj 1936 All in All
    Bone Collector 01背包问题
    sdut1359 求最大和子矩阵
    求最大值
    后缀式求值
  • 原文地址:https://www.cnblogs.com/renhl/p/12996643.html
Copyright © 2011-2022 走看看