ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/BDB/BDB.xs
(Generate patch)

Comparing BDB/BDB.xs (file contents):
Revision 1.56 by root, Mon Sep 29 02:59:08 2008 UTC vs.
Revision 1.57 by root, Mon Sep 29 03:01:54 2008 UTC

1912 CODE: 1912 CODE:
1913{ 1913{
1914 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) 1914 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key))
1915 croak ("db_c_get was passed a read-only/constant 'key' argument but operation is not DB_SET"); 1915 croak ("db_c_get was passed a read-only/constant 'key' argument but operation is not DB_SET");
1916 1916
1917 {
1917 dREQ (REQ_C_GET, 1); 1918 dREQ (REQ_C_GET, 1);
1918 req->dbc = dbc; 1919 req->dbc = dbc;
1919 req->uint1 = flags; 1920 req->uint1 = flags;
1920 if (flags & DB_OPFLAGS_MASK == DB_SET) 1921 if (flags & DB_OPFLAGS_MASK == DB_SET)
1921 sv_to_dbt (&req->dbt1, key); 1922 sv_to_dbt (&req->dbt1, key);
1922 else 1923 else
1923 { 1924 {
1924 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE) 1925 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE)
1925 sv_to_dbt (&req->dbt1, key); 1926 sv_to_dbt (&req->dbt1, key);
1926 else 1927 else
1927 req->dbt1.flags = DB_DBT_MALLOC; 1928 req->dbt1.flags = DB_DBT_MALLOC;
1928 1929
1929 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key); 1930 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key);
1930 } 1931 }
1931 1932
1932 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH 1933 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH
1933 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE) 1934 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE)
1934 sv_to_dbt (&req->dbt3, data); 1935 sv_to_dbt (&req->dbt3, data);
1935 else 1936 else
1936 req->dbt3.flags = DB_DBT_MALLOC; 1937 req->dbt3.flags = DB_DBT_MALLOC;
1937 1938
1938 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data); 1939 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data);
1939 REQ_SEND; 1940 REQ_SEND;
1941 }
1940} 1942}
1941 1943
1942void 1944void
1943db_c_pget (DBC *dbc, SV *key, SV_mutable *pkey, SV_mutable *data, U32 flags = 0, SV *callback = 0) 1945db_c_pget (DBC *dbc, SV *key, SV_mutable *pkey, SV_mutable *data, U32 flags = 0, SV *callback = 0)
1944 PREINIT: 1946 PREINIT:
1946 CODE: 1948 CODE:
1947{ 1949{
1948 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) 1950 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key))
1949 croak ("db_c_pget was passed a read-only/constant 'key' argument but operation is not DB_SET"); 1951 croak ("db_c_pget was passed a read-only/constant 'key' argument but operation is not DB_SET");
1950 1952
1953 {
1951 dREQ (REQ_C_PGET, 1); 1954 dREQ (REQ_C_PGET, 1);
1952 req->dbc = dbc; 1955 req->dbc = dbc;
1953 req->uint1 = flags; 1956 req->uint1 = flags;
1954 if (flags & DB_OPFLAGS_MASK == DB_SET) 1957 if (flags & DB_OPFLAGS_MASK == DB_SET)
1955 sv_to_dbt (&req->dbt1, key); 1958 sv_to_dbt (&req->dbt1, key);
1956 else 1959 else
1957 { 1960 {
1958 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE) 1961 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE)
1959 sv_to_dbt (&req->dbt1, key); 1962 sv_to_dbt (&req->dbt1, key);
1960 else 1963 else
1961 req->dbt1.flags = DB_DBT_MALLOC; 1964 req->dbt1.flags = DB_DBT_MALLOC;
1962 1965
1963 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key); 1966 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key);
1964 } 1967 }
1965 1968
1966 req->dbt2.flags = DB_DBT_MALLOC; 1969 req->dbt2.flags = DB_DBT_MALLOC;
1967 req->sv2 = SvREFCNT_inc (pkey); SvREADONLY_on (pkey); 1970 req->sv2 = SvREFCNT_inc (pkey); SvREADONLY_on (pkey);
1968 1971
1969 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH 1972 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH
1970 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE) 1973 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE)
1971 sv_to_dbt (&req->dbt3, data); 1974 sv_to_dbt (&req->dbt3, data);
1972 else 1975 else
1973 req->dbt3.flags = DB_DBT_MALLOC; 1976 req->dbt3.flags = DB_DBT_MALLOC;
1974 1977
1975 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data); 1978 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data);
1976 REQ_SEND; 1979 REQ_SEND;
1980 }
1977} 1981}
1978 1982
1979void 1983void
1980db_c_del (DBC *dbc, U32 flags = 0, SV *callback = 0) 1984db_c_del (DBC *dbc, U32 flags = 0, SV *callback = 0)
1981 PREINIT: 1985 PREINIT:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines