File: propfind-pool-notes

package info (click to toggle)
subversion 1.4.2dfsg1-3
  • links: PTS
  • area: main
  • in suites: etch
  • size: 37,284 kB
  • ctags: 32,888
  • sloc: ansic: 406,472; python: 38,378; sh: 15,438; cpp: 9,604; ruby: 8,313; perl: 5,308; java: 4,576; lisp: 3,860; xml: 3,298; makefile: 856
file content (44 lines) | stat: -rw-r--r-- 1,782 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
This is a rough manual trace of what occurs on a PROPFIND request.

Location of file: M == mod_dav, S == mod_dav_svn

dav_method_propfind [ M:mod_dav.c ]
dav_svn_walk [ S:repos.c ]
dav_svn_do_walk [ S:repos.c ]
  ** may recursively call dav_svn_do_walk for children as depth dictates
  - dav_propfind_walker [ M:mod_dav.c ]
    - dav_open_propdb [ M:props.c ]
      ** sets propdb->p to r->pool
      - dav_svn_db_open [ S:deadprops.c ]
        ** creates db->p
    - dav_get_props [ M:props.c ]
      ** Uses propdb->p.
      ** Appends response to propdb->p
      - may call dav_find_liveprop [ M:props.c ]
        - dav_svn_find_liveprop [ S:liveprops.c ]
          - dav_do_find_liveprop [ M:liveprop.c ]
            ** static storage 
      - dav_insert_liveprop [ M:props.c ]
        - dav_svn_insert_prop [ S:liveprops.c ]
          ** uses resource->info->pool to svn_fs_*
          ** places result in resource->pool
      - dav_svn_db_output_value [ S:deadprops.c ]
        ** uses db->resource->pool
        - get_value [ S:deadprops.c ]
          ** Uses db->p
      - dav_svn_db_define_namespaces [ S:deadprops.c ]
        - calls dav_xmlsns_add with constant storage space.
        - Must live as long as xi->prefix_uri/xi->uri_prefix
          ** Uses propdb->p
    - dav_get_allprops [ M:props.c ]
      ** Uses propdb->p
      - dav_run_insert_all_liveprops [ M:hook ]
        - dav_svn_insert_all_liveprops [ S:liveprops.c ]
          ** Uses resource->info->pool
          - dav_svn_insert_prop [ see above ]
            ** resource->info->pool tweaked to be a temp subpool
    - dav_close_propdb [ M:props.c ]
      - dav_svn_db_close [ S:deadprops.c ]
         ** destroys db->p
    - dav_add_response [ M:mod_dav.c ]
      ** uses wres->pool to store response