将 chrome 本机客户端中的 pp::Var 数组转换为 C 整数数组

Convert pp::Var array in chrome native client to a C integer array

我正在开发 google chrome 扩展程序,其中我通过 pp::Var shared = dict_message.Get("shared_list"); 从扩展程序中接收整数数组。现在我需要将这个数组传递给 C 函数,因此需要将元素放入 int*。我该怎么做?

首先,确保 pp::Var 确实是一个数组。

if (shared.is_array()) {

然后,使用class pp::VarArray.

提供的接口
    pp::VarArray array(shared);
    int * carray = new int[array.GetLength()];
    for (uint32_t i = 0; i < array.GetLength(); ++i) {
        pp::Var oneElem(array.Get(i));
        assert(oneElem.is_number());
        carray[i] = oneElem.AsInt();
    }
    // carray is ready to use
    delete [] carray;
}