Exemple #1
0
Variant f_hphp_recursiveiteratoriterator_key(CObjRef obj) {
  RecursiveIteratorIterator *rii = get_recursiveiteratoriterator(obj);
  unsigned int size = rii->m_iterators.size();
  ASSERT(size > 0);
  if (rii->m_iterator.is<RecursiveDirectoryIterator>()) {
    c_recursivedirectoryiterator *c_rdi =
      NEW(c_recursivedirectoryiterator)();
    c_rdi->m_rsrc = rii->m_iterators[size-1].first;
    return f_hphp_recursivedirectoryiterator_key(c_rdi);
  }
  throw InvalidArgumentException("iterator", "unsupported type");
}
Variant f_hphp_recursiveiteratoriterator_key(CObjRef obj) {
  RecursiveIteratorIterator *rii = get_recursiveiteratoriterator(obj);
  unsigned int size = rii->m_iterators.size();
  assert(size > 0);
  if (rii->m_iterator.is<RecursiveDirectoryIterator>()) {
    ObjectData* rdi = SystemLib::AllocRecursiveDirectoryIteratorObject();
    rdi->o_set("rsrc",
      rii->m_iterators[size-1].first, "SplFileInfo");
    return f_hphp_recursivedirectoryiterator_key(rdi);
  }
  throw NotImplementedException("this type of iterator");
}
Variant f_hphp_recursiveiteratoriterator_key(CObjRef obj) {
  RecursiveIteratorIterator *rii = get_recursiveiteratoriterator(obj);
  unsigned int size = rii->m_iterators.size();
  ASSERT(size > 0);
  if (rii->m_iterator.is<RecursiveDirectoryIterator>()) {
    c_RecursiveDirectoryIterator *c_rdi =
      NEWOBJ(c_RecursiveDirectoryIterator)();
    c_rdi->m_rsrc = rii->m_iterators[size-1].first;
    return f_hphp_recursivedirectoryiterator_key(c_rdi);
  }
  throw NotImplementedException("this type of iterator");
}